返回顶部

收藏

Java下通过发送http post请求的代码

更多
package com.everyone.android.net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;

import org.apache.http.protocol.HTTP;

import com.everyone.android.callback.ParseCallback;
import com.everyone.android.callback.ResultCallback;

/**
 * 功能描述:通过HTTP协议发送POST请求
 * @author android_ls
 *
 */
public class AsyncHttpPost extends AsyncBaseRequest {

    /**
     * 
     */
    private static final long serialVersionUID = 3L;

    public AsyncHttpPost(String url, Map<String, String> parameter,
            ParseCallback handler, ResultCallback requestCallback) {
        super(url, parameter, handler, requestCallback);
    }

    @Override
    protected InputStream getRequestResult() throws IOException {
        StringBuilder sb = new StringBuilder();
        if(parameter!=null && !parameter.isEmpty()){
            for(Map.Entry<String, String> entry : parameter.entrySet()){
                sb.append(entry.getKey()).append('=')
                    .append(URLEncoder.encode(entry.getValue(), HTTP.UTF_8)).append('&');
            }
            sb.deleteCharAt(sb.length()-1);
        }

        // 得到实体的二进制数据
        byte[] entitydata = sb.toString().getBytes();
        URL url = new URL(requestUrl);
        mHttpURLConn = (HttpURLConnection)url.openConnection();
        mHttpURLConn.setRequestMethod("POST");
        mHttpURLConn.setConnectTimeout(5 * 1000);
        // 如果通过post提交数据,必须设置允许对外输出数据
        mHttpURLConn.setDoOutput(true);
        mHttpURLConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        mHttpURLConn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
        OutputStream outStream = mHttpURLConn.getOutputStream();
        outStream.write(entitydata);
        outStream.flush();
        outStream.close();
        if(mHttpURLConn.getResponseCode()== HttpURLConnection.HTTP_OK){
            return mHttpURLConn.getInputStream();
        }
        return null;
    }

}

标签:post,http,Java

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. root 发表 2015-04-28 05:42:01 java发送http的get、post请求
  2. Chen Zhidong 发表 2011-02-21 11:34:53 Android获取网页数据的方法总结
  3. Harries 发表 2017-07-08 05:28:47 SpringBoot+Hibernate制作图书管理系统
  4. 刘莉莉 发表 2016-03-19 14:24:43 快学scala笔记——映射和元组
  5. yanxinchi 发表 2016-04-02 15:27:56 Java内存使用系列一:Java 对象的内存占用
  6. puefu.he 发表 2016-05-13 16:02:11 AngularJS 表达式
  7. zhuangli 发表 2018-03-01 15:51:59 spring通过QQ邮箱发送Email
  8. Harries 发表 2016-11-06 08:38:44 认识一下前后端联调
  9. xubiao.zhuang 发表 2018-05-03 14:17:37 PHP还是Java?
  10. 刘莉莉 发表 2018-05-06 12:48:24 maven脚手架
  11. changyuan.xu 发表 2016-12-13 16:03:44 微服务:真正的架构模式
  12. xirruiqiang 发表 2016-12-16 15:56:56 【译】配置一个简单而实用的 JavaScript 开发环境

发表评论