0

POST リクエストを Web サーバーに送信しようとしています。Call は JMeter でテストされます。

JMeter でのテスト (HTTP 要求の詳細)

これで、次のコードを取得できました。

 //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」エラーが発生します。私の意見では、これはパラメーター宣言の空の名前が原因です。しかし、私はそれを呼び出す方法がわかりません。何か案は?

4

1 に答える 1

0

ドイツのウィキペディアの HTTP ヘッダー フィールドhttps://de.wikipedia.org/wiki/Liste_der_HTTP-Headerfelderの記事でエラー コードを見つけました。ちなみに、エラーコードは英語の記事https://en.wikipedia.org/wiki/List_of_HTTP_header_fieldsには記載されていません。

ホストがヘッダーにない場合、サーバーはエラーコード 400 Bad Request で応答する必要があります。

ヘッダーを確認したところ、先頭の http:// が見つかりました

「http://」を削除すると問題が解決しました。

于 2020-07-28T13:28:47.287 に答える