HttpURLConnectionを使用して、Javaでいくつかのパラメーターを使用してGETリクエストを実行しようとしています。ただし、これを行うたびに、毎回400:BadRequestを受け取ります。それを機能させるには何を変更する必要がありますか?
String url = "http://www.awebsite.com/apath?p1=v1&p2=v2&p3=v3";
HttpURLConnection conn = (HttpURLConnection)new URL(url).openConnection();
conn.setDoInput(true);
conn.setDoOutput(false);
conn.setUseCaches(false);
conn.setRequestMethod("GET");
conn.setRequestProperty("Host", "www.awebsite.com");
conn.setRequestProperty("User-Agent", "Mozilla/4.0");
conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
conn.setRequestProperty("Accept-Language", "en-us,en;q=0.5");
conn.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
conn.setRequestProperty("Keep-Alive", "115");
conn.setRequestProperty("Connection", "keep-alive");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder data = new StringBuilder();
String s = "";
while((s = br.readLine()) != null)
data.append(s);
String pageData = data.toString();
私が試してみました:
- クエリ全体(?の後)および値のみでURLEncoderを使用します。
- コンテンツの長さのヘッダーを設定します。
- 出力を使用するように接続を設定し、クエリを出力として配置します。