Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proxy経由SSLでのCONNECT後のheader部がcurlと異なっているため通信に失敗します #62

Open
muddydixon opened this issue Oct 11, 2013 · 6 comments

Comments

@muddydixon
Copy link

下記箇所を
https://github.com/tokuhirom/Furl/blob/master/lib/Furl/HTTP.pm#L368

my $request_uri = $proxy;

とすると、成功します。

curl --trace-asciiなどで確認したところ

  • curl
POST /path HTTP/1.1
User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.1 9.7 OpenSSL/0.9.8x zlib/1.2.3
Host: overproxyhost
Accept: */*
Content-Length: 117
Content-Type: application/x-www-form-urlencoded
  • Furl
POST https://overproxyhost/path HTTP/1.1
User-Agent: Furl/2.19
Host: overproxyhost
Accept: */*
Content-Length: 117
Content-Type: application/x-www-form-urlencoded

と異なっていました。

プロキシ含めて、環境依存の可能性もあるかと思いましたが、curlと比較しても異なっていたので、issueとしました。

@tokuhirom
Copy link
Owner

日本語でOK

@muddydixon
Copy link
Author

すみません、途中でenterされてしまいました m(_ _ )m

@tokuhirom
Copy link
Owner

実際どんなエラーでてますかね?

@muddydixon
Copy link
Author

すみません。言葉が不適切でした。もうしわけありません。
通信は成功します。

ちょっとビジネスロジックになってしまうので、伝えにくいのですが、

  1. はじめにリクエストをして、tokenを取得します
  2. そのtokenを使ってデータを取得します
  3. その際に、最初にリクエストした時のリクエスト先のhost / port / path情報が、データを取得するときの情報と異なっているため、データが帰って来ない、という問題が発生します。

それを、上記のような対応を施すことで解決しました。
他の環境などを考えると、問題ではないのかもしれませんが、前述したとおり、curlと異なっているため、issueとしました。

私の勉強不足である場合は、issueをcloseしてしまって下さい。
お手数おかけします。

@mattn
Copy link
Contributor

mattn commented Oct 11, 2013

overproxyhost は proxy 自身ですか?それとも接続しようと思っているホストですか?

その際に、最初にリクエストした時のリクエスト先のhost / port / path情報が、データを取得するときの情報と異なっているため、データが帰って来ない、という問題が発生します。

それは何のモジュールを使って発生してますか?何のサーバで問題が発生してますか?

@muddydixon
Copy link
Author

overproxyhostは、接続しようとしているホストです。

同様にFurlを利用して、token取得のリクエストを投げています。
相手方のサーバでは、「リクエストしている」サーバが同一であることの情報にhost / port を利用しているようなのですが、異なるサーバだと認識されているためtokenが無効として判定されているようです。

ぼんやりとしか情報を出せずにすみません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants