私はJavaでHTTP PATCHリクエストを作成しようとしていますが、私の努力にもかかわらず、これは機能しません。 私はJSONにパッチを適用しようとしています、ここに私のコードです:JavaのHTTP PATCHリクエスト
HttpResponse response = null;
BufferedReader rd = null;
StringBuffer result = new StringBuffer();
String line = "";
HttpClient httpclient = HttpClients.createDefault();
HttpPatch httpPatch = new HttpPatch("http://myURL");
JsonArrayBuilder Abuilder = Json.createArrayBuilder();
JsonObjectBuilder oBuilder = Json.createObjectBuilder();
for(int i=0;i<48;i++){
Abuilder.add(i+1);
}
oBuilder.add("date", "2016-09-08");
oBuilder.add("values",Abuilder);
JsonObject jo = Json.createObjectBuilder().add("puissance", Json.createObjectBuilder().add("curves",Json.createArrayBuilder().add(oBuilder))).build();
try{
//Execute and get the response.
StringEntity params =new StringEntity(jo.toString());
params.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httpPatch.setEntity(params);
response = httpclient.execute(httpPatch);
System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
while ((line = rd.readLine()) != null) {
System.out.println(line);
result.append(line);
}
}catch(Exception e){
}
私はこの要求を実行すると、私はポストマンを使用してこの要求を実行すると、私は
"400 Error: The request has an invalid header name".
を取得し、これが正常に動作しています。
私はHTTPリクエストでかなり新しいので、詳細が必要な場合はお気軽にお尋ねください。
はあなたが見ることができる要求ペイロードの名前をヘッダに設定する
StringEntity.setContentType
を使用する必要がありますエンコードタイプ、を設定するために使用されていますか? –
ヘッダー名を確認し、追加された迷惑メールや特殊文字がないか注意してください。 –
こんにちは、ご協力ありがとうございます。 Sheetal、ヘッダー名のチェックについて話しているとき、あなたが何を話しているのか分からない、私の要求のヘッダーを意味していますか?もしそうなら、あなたはこれをする方法を知っていますか? (関数getHeaders(String name)がありますが、文字列を入力として使用する必要があるかどうかわかりません) – Nefarious62