用httpPost对JSON发送和接收的例子

                                                             用httpPost对JSON发送和接收的例子


HTTPPost发送JSON:

private  static  final String APPLICATION_JSON = "application/json";
    
     private  static  final String CONTENT_TYPE_TEXT_JSON = "text/json";

public  static  void httpPostWithJSON(String url, String json)  throws Exception {
         //  将JSON进行UTF-8编码,以便传输中文
        String encoderJson = URLEncoder.encode(json, HTTP.UTF_8);
        
        DefaultHttpClient httpClient =  new DefaultHttpClient();
        HttpPost httpPost =  new HttpPost(url);
        httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
        
        StringEntity se =  new StringEntity(encoderJson);
        se.setContentType(CONTENT_TYPE_TEXT_JSON);
        se.setContentEncoding( new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
        httpPost.setEntity(se);
        httpClient.execute(httpPost);
    }


接收HTTPPost中的JSON:

public  static String receivePost(HttpServletRequest request)  throws IOException, UnsupportedEncodingException {
        
         //  读取请求内容
        BufferedReader br =  new BufferedReader( new InputStreamReader(request.getInputStream()));
        String line =  null;
        StringBuilder sb =  new StringBuilder();
         while((line = br.readLine())!= null){
            sb.append(line);
        }

         //  将资料解码
        String reqBody = sb.toString();
         return URLDecoder.decode(reqBody, HTTP.UTF_8);

    }



如何 post json格式的数据,并附加http头,接受返回数据,请看下面的代码:

Java代码 
  1. private void HttpPostData() {  
  2. try {  
  3.     HttpClient httpclient = new DefaultHttpClient();  
  4.     String uri = "http://www.yourweb.com";  
  5.     HttpPost httppost = new HttpPost(uri);   
  6.     //添加http头信息  
  7.     httppost.addHeader("Authorization""your token"); //认证token  
  8.     httppost.addHeader("Content-Type""application/json");  
  9.     httppost.addHeader("User-Agent""imgfornote");  
  10.     //http post的json数据格式:  {"name": "your name","parentId": "id_of_parent"}  
  11.     JSONObject obj = new JSONObject();  
  12.     obj.put("name""your name");  
  13.     obj.put("parentId""your parentid");  
  14.     httppost.setEntity(new StringEntity(obj.toString()));     
  15.     HttpResponse response;  
  16.     response = httpclient.execute(httppost);  
  17.     //检验状态码,如果成功接收数据  
  18.     int code = response.getStatusLine().getStatusCode();  
  19.     if (code == 200) {   
  20.         String rev = EntityUtils.toString(response.getEntity());//返回json格式: {"id": "27JpL~j4vsL0LX00E00005","version": "abc"}         
  21.         obj = new JSONObject(rev);  
  22.         String id = obj.getString("id");  
  23.         String version = obj.getString("version");  
  24.     }  
  25.     } catch (ClientProtocolException e) {     
  26.     } catch (IOException e) {     
  27.     } catch (Exception e) {   
  28.     }  
  29. }  
主要用到的类有:org.apache.http.client.HttpClient 、org.apache.http.client.methods.HttpPost 和org.json.JSONObject


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值