1、json格式
HttpClientContext context = HttpClientContext.create ()
httpPost.setURI (java.net .URI .create (url))
if(null != headers) {
for (String name : headers.keySet ()) {
httpPost.setHeader (name, headers.get (name))
}
}
StringEntity entity1 = new StringEntity(json, HTTP.UTF _8)
httpPost.setEntity (entity1)
entity1.setContentType ("application/json" )
System.out .println ("Executing request " + httpPost.getRequestLine () + " to " + " via " + proxy)
CloseableHttpResponse response = httpClient.execute (httpPost,context)
response.setLocale (Locale.CHINESE )
long end = System.currentTimeMillis ()
System.out .println ("----------------------------------------" )
System.out .println (response.getStatusLine () + "cost:" + (end-start)/1000 + "秒" )
if(response.getStatusLine ().getStatusCode ()==HttpStatus.SC _OK){
entity = response.getEntity ()
String html = EntityUtils.toString (entity, charSet)
response.close ()
entity.getContent ().close ()
}
2、urlencoded格式
HttpClientContext context = HttpClientContext.create ()
httpPost.setURI (java.net .URI .create (url))
if(null != headers) {
for (String name : headers.keySet ()) {
httpPost.setHeader (name, headers.get (name))
}
}
StringEntity entity1 = new StringEntity(postDataEncode, HTTP.UTF _8)
entity1.setContentType ("application/x-www-form-urlencoded" )
httpPost.setEntity (entity1)
System.out .println ("Executing request " + httpPost.getRequestLine () + " to " + " via " + proxy)
CloseableHttpResponse response = httpClient.execute (httpPost,context)
response.setLocale (Locale.CHINESE )
long end = System.currentTimeMillis ()
System.out .println ("----------------------------------------" )
System.out .println (response.getStatusLine () + "cost:" + (end-start)/1000 + "秒" )
if(response.getStatusLine ().getStatusCode ()==HttpStatus.SC _OK){
entity = response.getEntity ()
String html = EntityUtils.toString (entity, charSet)
response.close ()
entity.getContent ().close ()
}
3、key-value格式
HttpClientContext context = HttpClientContext.create ()
httpPost = new HttpPost(url)
if(null != headers) {
for (String name : headers.keySet ()) {
httpPost.setHeader (name, headers.get (name))
}
}
if(null != params) {
List<NameValuePair> nvps = new ArrayList<NameValuePair>()
for (String name : params.keySet ()) {
nvps.add (new BasicNameValuePair(name, params.get (name)))
}
httpPost.setEntity (new UrlEncodedFormEntity(nvps))
}
System.out .println ("Executing request " + httpPost.getRequestLine () + " to " + " via " + proxy)
CloseableHttpResponse response = httpClient.execute (httpPost,context)
response.setLocale (Locale.CHINESE )
String redirectUrl = ""
List<URI> redirectUrls = context.getRedirectLocations ()
if(redirectUrls!=null){
redirectUrl = redirectUrls.get (0 ).toString ()
System.out .println ("重定向:" + redirectUrl)
}
long end = System.currentTimeMillis ()
System.out .println ("----------------------------------------" )
System.out .println (response.getStatusLine () + "cost:" + (end-start)/1000 + "秒" )
// System.out .println (EntityUtils.toString (response.getEntity ()))
if(response.getStatusLine ().getStatusCode ()==HttpStatus.SC _OK){
entity = response.getEntity ()
String html = EntityUtils.toString (entity, charSet)
response.close ()
// httpGet.releaseConnection ()
entity.getContent ().close ()
}
CloseableHttpClient httpclient = HttpClients.createDefault ()
try {
HttpPost httppost = new HttpPost("http://localhost:8080" +
"/servlets-examples/servlet/RequestInfoExample" )
FileBody bin = new FileBody(new File(args[0 ]))
StringBody comment = new StringBody("A binary file of some kind" , ContentType.TEXT _PLAIN)
HttpEntity reqEntity = MultipartEntityBuilder.create ()
.addPart ("bin" , bin)
.addPart ("comment" , comment)
.build ()
httppost.setEntity (reqEntity)
System.out .println ("executing request " + httppost.getRequestLine ())
CloseableHttpResponse response = httpclient.execute (httppost)
try {
System.out .println ("----------------------------------------" )
System.out .println (response.getStatusLine ())
HttpEntity resEntity = response.getEntity ()
if (resEntity != null) {
System.out .println ("Response content length: " + resEntity.getContentLength ())
}
EntityUtils.consume (resEntity)
} finally {
response.close ()
}
} finally {
httpclient.close ()
}
}
5、XML格式
File input = new File(“test.xml ”)
PostMethod post = new PostMethod(“http://localhost:8080 /httpclient/xml.jsp ”)
// 设置请求的内容直接从文件中读取
post.setRequestBody ( new FileInputStream(input))
if (input.length () < Integer.MAX _VALUE)
post.setRequestContentLength (input.length ())
else
post.setRequestContentLength (EntityEnclosingMethod.CONTENT _LENGTH_CHUNKED)
// 指定请求内容的类型
post.setRequestHeader ( "Content-type" , "text/xml; charset=GBK" )
HttpClient httpclient = new HttpClient()
int result = httpclient.executeMethod (post)
System.out .println ( "Response status code: " + result)
System.out .println ( "Response body: " )
System.out .println (post.getResponseBodyAsString ())
post.releaseConnection ()