サービスとの古い統合を、pythonからgolangに書き直しています。このサービスは、カスタムステータスコードを使用します。たとえば、ステータスコードは8000です。しかし、私は応答を取得しようとしている間、私に "不正なHTTPステータスコード"としてエラーが出ています。この問題を解決するのに役立つ人もいます。コードをゴーンとステータスコードがEDIT 3Golang HttpカスタムリクエストのHTTPリクエストコードでクライアント要求が失敗する
if len(statusCode) != 3 {
return nil, &badStringError{"malformed HTTP status code", statusCode}
}
の長さは持っていない場合は、エラーがスローされます以下のコードが見つかりました:私は、HTTPステータスのRFC標準は3桁の数字であることを理解します を。しかし、私は銀行システムのレガシーコードを再統合しています。だから私はできない/サービスの実装を変更するアクセス権を持っていない。
もっと多くの文脈を与えるために、pythonのhttpライブラリはこの検証を行っていませんでした。 (私はある言語が他の言語よりも優れていると言っているわけではないので、言語/ライブラリを比較してはいけません)この特定の検証をバイパスする方法があるかどうか疑問に思っています。 RFC 2616からの理解のために事前に 感謝..
この問題を解決するには、ステータスコードを修正する必要があります。 8000は有効なHTTPではありません。根本的なバグを修正できない場合は、package net/httpの機能を使用することはできません(HTTPを使用していないため):低レベルの関数(ネットなど)を使用して、疑似HTTPを処理するために必要なものを再実装します。 – Volker
実際、ここでの問題は 'net/http'ではなく、ステータスコードです。仕様に従って、HTTPステータスコードはすべて正確に3桁であるため、Goのクライアントはこのように実装されています。 – Adrian
私は、RFC仕様がステータスコードが3桁でなければならないと言っていることを理解しています。しかし、問題は、私が統合しようとしているサービスが非常に古い遺産の銀行のAPIであるということです。そして、私たちはそれを支配していません。また、問題はnet/httpであるとは言いません。しかし、私はレガシーコードのこの検証をバイパスする方法があるかどうかを尋ねています。 – user2101845