2017-03-10 11 views
1

を経由して私は、次のようなNet経由でPOSTリクエストを送信しています:リクエストURIが長すぎるPOSTリクエスト

http = Net::HTTP.new(mixpanel_endpoint.host, mixpanel_endpoint.port) 
    request = Net::HTTP::Post.new(mixpanel_endpoint.request_uri) 
    http.request(request) 

問題はREQUEST_URIが最大の制限を超えているということです。これは、BASE64でエンコードされた文字列です。

誰もがこのことについて何をすべきか知っていますか?

<Net::HTTPRequestURITooLong 414 Request URI Too Long readbody=true> 
+0

あなたは 'Net'またはあなたも接続しようとしているエンドポイントからのエラーを取得していますか? – Kris

+0

はエラーメッセージを追加 –

+1

私はエンドポイントが414 HTTPコードを返しているため、エラーがあると思います。 – Kris

答えて

0

データを直接URLに追加していますか?

データからエンドポイントURLを分割してみます。たとえば:

Net::HTTP::Post.new(request_endpoint, "whatever_param_value=#{base64_encoded_data}") 
1

Net::HTTPRequestURITooLongがサーバーから414 HTTPコードで、あなたはエンドポイントができますどのように適合するための要求を変更する必要があります。

10.4.15 414のRequest-URIのRequest-URI は、サーバが解釈可能な長さよりも長いため、サーバが要求のサービスを拒否しているが長すぎる

。この稀な状態 は、クライアント が、長いクエリー情報を持つGET要求への不適切な変換をクライアント がリダイレクトのURI「ブラックホール」(例えば、 リダイレクトされたURI接頭辞が自分自身の接尾辞を指している場合)、または を読み取ったり、Request-URIを操作したりするために固定長のバッファを使用してセキュリティーを利用しようとしているクライアントが ホールを利用しようとすると、

参照:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

関連する問題