我正在通过Net
发送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 :(得分:1)
Net::HTTPRequestURITooLong
是来自服务器的414 HTTP代码,您需要更改请求以符合端点允许的内容。
10.4.15 414 Request-URI太长
服务器拒绝为请求提供服务,因为Request-URI 比服务器愿意解释的更长。这种罕见的情况 仅在客户端未正确转换POST时才会发生 当客户端请求具有长查询信息的GET请求 已经陷入了一个URI&#34;黑洞&#34;重定向(例如,a 重定向的URI前缀,指向其自身的后缀),或者当 服务器受到试图利用安全性的客户端的攻击 某些服务器中存在使用固定长度缓冲区进行读取的孔 或操纵Request-URI。
答案 1 :(得分:0)
您是否将数据直接添加到网址?
尝试从数据中分割出端点URL。例如:
Net::HTTP::Post.new(request_endpoint, "whatever_param_value=#{base64_encoded_data}")