安卓移动端和web开发中的post请求笔记

post请求需要给请求体放数据参数进去 但是又有很多种格式 常见的是json格式

下面是2种格式的数据的区别和用法:  如果不按类型给对应的类型数据的话会报400的错误的!

"application/json" 这种ContentType类型的就不多说了直接转成json字符串可以了放进
StringEntity entity = new StringEntity(jsonStr, "UTF-8");

下面是例外一种格式:

private String Post(String address, Map<String,String> params) {

    String result = null;
    String serverURL = address;
    HttpPost httpRequest = new HttpPost(serverURL);// 
    HttpResponse httpResponse = null;// 发出http请求
    try {
        StringEntity reqEntity = new UrlEncodedFormEntity(converMap(params), HTTP.UTF_8);
        reqEntity.setContentType("application/x-www-form-urlencoded");
        httpRequest.setEntity(reqEntity);
        httpResponse = HttpClientFactory.getInstance().execute(httpRequest);
        if (httpResponse.getStatusLine().getStatusCode() == 200) {

            result = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");// 获取相应的字符串
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return result;
}
//把map转换为x-www-form-urlencoded这种contentType的数据格式放进entity
private List<NameValuePair> converMap(Map<String,String> params){
    List<NameValuePair> result = new ArrayList<NameValuePair>();
    String key = "";
    Set<String> keys = params.keySet();
    for(Iterator it = keys.iterator(); it.hasNext();){
        key = (String)it.next();
        result.add(new BasicNameValuePair(key,params.get(key)));
    }

    return result;
}

下面地址是所有contenttype的地址:http://tool.oschina.net/commons?type=22013-05-17

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值