Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2017-08

HTTPS with fphttpclient

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

kristakis

Hi,

I'd like to make a request to a HTTPS address with TfpHTTPClient but am getting an unknown protocol error.

I'm running fpc 2.6.4 on Rasbian 8 (Jessie) on a Pi 3. Here's the source code:

program test2;
{$mode objfpc}{$H+}
uses
  fphttpclient;
begin
  WriteLn(TFPHTTPClient.SimpleGet('http://www.google.com/humans.txt'));
end.

That works fine but if I change the URL to https:// it returns:

An unhandled exception occurred at $00041AE4 :
EHTTPClient : Invalid protocol : "https"

Looking around on the internet led me to this mailing list where this question has been answered before.

http://free-pascal-general.1045716.n5.nabble.com/https-how-does-it-work-td5727678.html#a5727837 "The ssockets unit has the ability to set up a TLS/SSL connection. It uses openssl as a library.

You can check the fphttpclient unit to see how this is done. "

I found the source for fphttpclient at
https://github.com/alrieckert/freepascal/blob/master/packages/fcl-web/src/base/fphttpclient.pp

and it uses sslsockets unit. I found that at
https://github.com/graemeg/freepascal/tree/master/packages/fcl-net/src but it wouldn't compile with the ssockets unit that I had. I tried the ssockets unit on that same page and got more errors.

I tried to find all the units that were failing and replaced them with copies from those githubs but ended up with just more errors further down the uses tree. This didn't feel right so I reset and started over.

I found this post:

where the poster asks about https support in fphttpclient and is told:

It is already implemented in trunk. So you just:

program project1;
{$mode objfpc}{$H+}
uses
  fphttpclient;
begin
  WriteLn(TFPHTTPClient.SimpleGet('https://www.google.com/humans.txt'));
end.

This is pretty much what I had from the first search and I'm back to square one. I feel like there's some simple little thing I'm missing but I have no idea what it is. Is there a package for free pascal that I install via apt-get that has the correct ssl units perhaps?

thanks,
kris

-----
Things I hate:
1. Forum signatures
2. Irony
3. Lists

Michael Van Canneyt
to kristakis
kristakis wrote 7 lines
Hi, I'd like to make a request to a HTTPS address with TfpHTTPClient but am getting an unknown protocol error. I'm running fpc 2.6.4 on Rasbian 8 (Jessie) on a Pi 3. Here's the source code:

You need version 3.0.2 or 3.0.0 for this to work.

Michael.