HttpClient发送get,post接口请求

HttpClient发送get post接口请求

/**
  * post
  * @param url POST地址
  * @param data POST数据NameValuePair[]
  * @return 响应的参数
  */
 public static String post(String url,NameValuePair[] data){---------------get里面没有data只有url  

     String response = "";  

     HttpClient httpClient = new HttpClient();
     PostMethod postMethod = new PostMethod(url);  

     //设置请求编码
     postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK");  

     postMethod.setRequestBody(data);  ---------------------------------get没有这一步--------   

     //设置请求头header参数
     postMethod.setRequestHeader("userId","57601095");
     postMethod.setRequestHeader("userSession","57601095");
     postMethod.setRequestHeader("cityid","31000");  

     int statusCode = 0;  

     try {
         statusCode = httpClient.executeMethod(postMethod);
     } catch (HttpException e) {
         e.printStackTrace();
     } catch (IOException e) {
         e.printStackTrace();
     }  

    try {
          byte[] b=postMethod.getResponseBody();
          response = new String(b,"GBK");
     } catch (IOException e) {
          e.printStackTrace();
     }
     postMethod.releaseConnection();
     System.out.println("POST响应参数:"+response);
     return response;
 }  

下面是带有301重定向的完整代码

/**
  * post
  * @param url POST地址
  * @param data POST数据NameValuePair[]
  * @return 响应的参数
  */
 public static String post(String url,NameValuePair[] data){------------------------get里面没有data只有url  

     String response = "";
     HttpClient httpClient = new HttpClient();
     PostMethod postMethod = new PostMethod(url);  

     //设置请求编码
     postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK");  
     postMethod.setRequestBody(data);--------------------------------get没有这一步  

     //设置请求头header参数
     postMethod.setRequestHeader("userId","57601095");
     postMethod.setRequestHeader("userSession","57601095");
     postMethod.setRequestHeader("cityid","31000");  

     int statusCode = 0;  

     try {
         statusCode = httpClient.executeMethod(postMethod);
     } catch (HttpException e) {
         e.printStackTrace();
     } catch (IOException e) {
         e.printStackTrace();
     }  

     //301、302重定向
     if(statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY){
         Header locationHeader = postMethod.getResponseHeader("location");
         String location = null;
         if (locationHeader != null) {
             location = locationHeader.getValue();
             System.out.println("重定向跳转页面:" + location);
             response= post(location,data);//用跳转后的页面重新请求。
         } else {
             System.err.println("location is null.");
         }
     }else {
         System.out.println(postMethod.getStatusLine());
         try {
             byte[] b=postMethod.getResponseBody();
             response = new String(b,"GBK");
         } catch (IOException e) {
             e.printStackTrace();
         }
         postMethod.releaseConnection();
     }  

     System.out.println("POST响应参数:"+response);  

     return response;
 }  
时间: 2024-10-25 04:31:29

HttpClient发送get,post接口请求的相关文章

postman 发送webservice的接口请求

第一次用postman工具发送接口请求给webservice,遇到了一些坑,所以还是记录一下. 一.使用post发送请求 二.headers添加头部信息 Content-Type=text/xml Accept-Charset=utf-8 三.填写发送地址,如http://192.168.10.11:8083/ffffff/services/CommunicationWebService?wsdl 四.填写地址格式,严格按照以下格式来编写 <?xml version="1.0"

HttpClient 发送 HTTP、HTTPS 请求的简单封装

序 最近这几周,一直在忙同一个项目,刚开始是了解需求,需求有一定了解之后,就开始调第三方的接口.由于第三方给提供的文档很模糊,在调接口的时候,出了很多问题,一直在沟通协调,具体的无奈就不说了,由于接口的访问协议是通过 HTTP 和 HTTPS 通讯的,因此封装了一个简单的请求工具类,由于时间紧迫,并没有额外的时间对工具类进行优化和扩展,如果后续空出时间的话,我会对该工具类继续进行优化和扩展的. 引用 首先说一下该类中需要引入的 jar 包,apache 的 httpclient 包,版本号为 4

HttpClient发送Post,Get请求demo

一.Get请求     /**      * 通过httpclient到指定的uri来get数据      */     public static String getData(String url){             HttpClient httpClient = new HttpClient();         //设置代理         httpClient.getHostConfiguration().setProxy(Config.getProxyHost(), Conf

使用HttpClient 发送get、post请求,及其解析xml返回数据

一.关于HttpClient的使用: 可以参考这个博客地址,这里有详细的介绍,需要的可以先看一下: 地址是:http://blog.csdn.net/wangpeng047/article/details/19624529 二.项目中用到HttpClient 去请求一个地址,但是用get请求如果参数过多,不同的浏览器会导致不同程度的参数丢失,所以还应该要有post的请求的方式,在加上post请求方式的后,发现不能用原来解析get请求的方式来解析服务器返回的数据,经多方查找资料最终找到了解决方案,

Android系列之网络(一)----使用HttpClient发送HTTP请求

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4004983.html 联系方式:[email protected] 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是Internet上目前使用最广泛的应用层协议,它基

Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html 联系方式:[email protected] [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Android

android使用apache httpclient发送post请求

package com.liuc; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.ht

使用HttpClient发送GET请求

HttpRequestMessage http_req_msg = new HttpRequestMessage(); http_req_msg.Method = HttpMethod.Get; http_req_msg.Headers.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"); http_req_msg.RequestUr

用HttpPost 和 HttpClient 发送请求到web 端回调数据

btnok.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 跳转到新的页面 String name=usernameTextId.getText().toString(); String pwd=passwordTextId.getText().toString(); String url = "http://112.124.12.46/wxtest/login.soap?