私は、リクエストのペイロードの中にいくつかの余分なヘッダーと文字列xmlボディコンテンツを含むHTTPポストリクエストをJava言語を使って送ることができる、javaを使用して投稿リクエストを送信するためのhttpクライアントを作成する方法
どのように私はそれを行うことができます私にお勧めできますか?
あなたは私は、リクエストのペイロードの中にいくつかの余分なヘッダーと文字列xmlボディコンテンツを含むHTTPポストリクエストをJava言語を使って送ることができる、javaを使用して投稿リクエストを送信するためのhttpクライアントを作成する方法
どのように私はそれを行うことができます私にお勧めできますか?
あなたはあなたは、ApacheのHttpClientのようjava.net.HttpURLConnection
またはサードパーティのライブラリを使用することができますありがとうございます。ここでは、XMLをロードするための答えを見つけることができるStackOverflowスレッドです。
Write in body request with HttpClient
MkYongからこの例では、ヘッダーを追加するためのサンプル・コードを有しています。
ありがとうございました! – Sonn
多分あなたはit.HttpClient、Apacheのの1つを使用することができます。
これはデモです:
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
public class HttpXmlClient {
private static Logger log = Logger.getLogger(HttpXmlClient.class);
public static String post(String url, Map<String, String> params) {
DefaultHttpClient httpclient = new DefaultHttpClient();
String body = null;
log.info("create httppost:" + url);
HttpPost post = postForm(url, params);
body = invoke(httpclient, post);
httpclient.getConnectionManager().shutdown();
return body;
}
public static String get(String url) {
DefaultHttpClient httpclient = new DefaultHttpClient();
String body = null;
log.info("create httppost:" + url);
HttpGet get = new HttpGet(url);
body = invoke(httpclient, get);
httpclient.getConnectionManager().shutdown();
return body;
}
private static String invoke(DefaultHttpClient httpclient,
HttpUriRequest httpost) {
HttpResponse response = sendRequest(httpclient, httpost);
String body = paseResponse(response);
return body;
}
private static String paseResponse(HttpResponse response) {
log.info("get response from http server..");
HttpEntity entity = response.getEntity();
log.info("response status: " + response.getStatusLine());
String charset = EntityUtils.getContentCharSet(entity);
log.info(charset);
String body = null;
try {
body = EntityUtils.toString(entity);
log.info(body);
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return body;
}
private static HttpResponse sendRequest(DefaultHttpClient httpclient,
HttpUriRequest httpost) {
log.info("execute post...");
HttpResponse response = null;
try {
response = httpclient.execute(httpost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
private static HttpPost postForm(String url, Map<String, String> params){
HttpPost httpost = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList <NameValuePair>();
Set<String> keySet = params.keySet();
for(String key : keySet) {
nvps.add(new BasicNameValuePair(key, params.get(key)));
}
try {
log.info("set utf-8 form entity to httppost");
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return httpost;
}
}
、あなたがそのようにそれを使用することができます:
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("password", password);
String xml = HttpXmlClient.post(loginUrl, params);
log.info(xml);
https://www.google.de/#q=java+ http + client – JohnnyAW