リクエストは、URLからコンテンツを取得し、コンテンツを(毎回異なる)処理してから、同じURLに返信します。 GETメソッドを実行した後にsetRequestMethod( "POST")しようとすると、「メソッドをリセットできません:接続済みです」というメッセージが表示されます。私のコードは以下の通りですJava - GETとPOSTの両方で1つのHttpURLConnectionを開く方法
public class MyClass {
/**
* @param args
*/
public MyClass() {};
public void process() {
String url = "http://www.somesite.com/";
String strPage = null;
int n = 0;
try{
URL urlObj = new URL(url);
HttpURLConnection urlConnection =
(HttpURLConnection)urlObj.openConnection();
InputStream in = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String strWhole = null;
while(null != (strPage = reader.readLine())){
strWhole += strPage;
}
//handle content here and calculate result
... ...
//send result below
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
String urlParameters = "aa=bb&cc=dd&ee=ff";
DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
InputStream in1 = urlConnection.getInputStream();
BufferedReader reader1 = new BufferedReader(new InputStreamReader(in));
while(null != (strPage = reader1.readLine())){
System.out.println(strPage);
}
reader1.close();
}
catch(Exception e){
String exception = e.getMessage();
System.out.println(exception);
if (reader != null) {
reader.close();
}
if (reader1 != null) {
reader1.close();
}
}
return;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyClass dp = new MyClass();
dp.process();
}
}
@Guiherme openConnection()を呼び出す必要があるときは? –
すみません、コードを修正しました。 –
@Guihermeありがとう、それは私のためには動作しません。 kgeorgiyの解決策は私が必要としているものです。 –