【问题标题】:400 Bad Request. Sending HTTP POST call in Java that was tested in JMeter400 错误请求。在 JMeter 中测试的 Java 中发送 HTTP POST 调用
【发布时间】:2020-11-17 18:33:46
【问题描述】:

我正在尝试向 Web 服务器发送 POST 请求。该调用在 JMeter 中进行了测试。

现在我得到了以下代码:

 //HEADER SECTION
    post.setHeader("Connection","keep-alive");
    post.setHeader("Host", "http://sv2XXX.XXX.XXX.XXX.com:8080");
    post.setHeader("Content-Type", "text/plain");
    
    
    //BODY SECTION
    ArrayList<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
    urlParameters.add(new BasicNameValuePair("","<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:api=\"http://api.XXX.XXX.XXX.com/\">" + 
            "<soap:Header>" + 
            "<api:userid>USER1</api:userid>" + 
            "</soap:Header>" + 
            "<soap:Body>" + 
            "<api:executeAbout>" + 
            "<About/>" + 
            "</api:executeAbout>" + 
            "</soap:Body>" + 
            "</soap:Envelope>"));

    post.setEntity(new UrlEncodedFormEntity(urlParameters));

这会导致“400 Bad Request”错误。在我看来,这是由参数声明中的空名称引起的。但我不知道怎么称呼它。有什么想法吗?

【问题讨论】:

  • 我不知道 JMeter,但你的信封不应该在你的请求正文中,而不是在参数中吗?
  • @PierreSevrain 感谢您的想法。我刚刚找到了这个stackoverflow.com/questions/18188041/… 并将对其进行测试。
  • 这不起作用。我仍然收到错误请求错误。

标签: java jmeter http-post url-parameters http-post-vars


【解决方案1】:

我在 HTTP Header Fields https://de.wikipedia.org/wiki/Liste_der_HTTP-Headerfelder 的德语维基百科文章中找到了错误代码。顺便说一下英文文章https://en.wikipedia.org/wiki/List_of_HTTP_header_fields中没有提到错误代码。

它表示当标头中缺少主机时,服务器必须以错误代码 400 Bad Request 回答。

我检查了我的标题,发现领先的 http://

删除“http://”解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多