httpclient发送不带参数post数据

两个问题:

1、httpclient怎样发送一个没有不论什么參数的post数据呢?

2、Webproject怎样去接收一个无參数的post呢?

起因:

今天(2014.11.10)在开发中碰到了一个问题。接口提供方提供的接口是要求使用post方式发送数据的。心想这不超简单的一个东西吗?直接post过去不就是了。可是,提供的接口是没有不论什么參数的。不是类似这样的http://api.dutycode.com/data/parm=xxx这样的接口,而是http://api.dutycode.com/data。这个地址直接接收post数据。

话说,当时瞬间心碎了,没接触过啊。。。

可是,总归是有解决的方法的。既然有这种接口来接收数据,那么一定能够发送

so

解决的方法:非常easy

实现代码例如以下:


public static void main(String[]
args) throws Exception
{

HttpClient client = HttpClients. createDefault();

HttpPost post = new HttpPost("http://127.0.0.1/report/testPost" );

//组装一个 json串。用于发送

JSONObject jsonObj = new JSONObject();

jsonObj.put( "website" , "http://www.dutycode.com" );

jsonObj.put( "email" , "[email protected]" );

StringEntity entity = new StringEntity(jsonObj.toJSONString());

entity.setContentEncoding( "UTF-8" );

entity.setContentType( "application/json" );//设置为 json数据

post.setEntity(entity);

HttpResponse response = client.execute(post);

HttpEntity resEntity = response.getEntity();

String res = EntityUtils. toString(resEntity);

System. out .println(res);

}

问题2 Webproject怎样去接收一个无參数的post呢?

既然能发送,那么得想办法实现服务端啊,要不然怎么才干死心。

so

測试代码:(注,使用公司内部框架实现。但基本原理是一样的)


@Path ("testPost" )

public ActionResult
getpost() throws Exception{

StringBuilder sb
new StringBuilder ();

InputStream is = getRequest().getInputStream();

BufferedInputStream bis = new BufferedInputStream(is);

byte []
buffer = new byte[1024];

int read
= 0;

while ((read=bis.read(buffer))
!= -1){

sb.append( new String(buffer,
0, read, "UTF-8" ));

}

System. out .println(sb.toString());

return outputStream("{msg:success}" );

}

原理非常easy。直接获取到post过来的全部数据流

上面两个结合起来一起測试的话,结果例如以下:

第一段代码返回结果:


{msg:success}

第二段代码返回结果:


{"email":"[email protected]","website":"http://www.dutycode.com"}

w=80&m=5&text=http://www.dutycode.com/post-76.html" align="left" style="border:0px">版权全部:《攀爬蜗牛》 => 《httpclient发送无參数的post数据

本文地址:http://www.dutycode.com/post-76.html

除非注明。文章均为 《蜗牛爬》 原版的,欢迎转载!地址转载本文,请注明,谢谢

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-11-03 03:30:09

httpclient发送不带参数post数据的相关文章

论httpclient上传带参数【commons-httpclient和apache httpclient区别】

需要做一个httpclient上传,然后啪啪啪网上找资料 1.首先以前系统中用到的了commons-httpclient上传,找了资料后一顿乱改,然后测试 PostMethod filePost = new PostMethod(url); filePost.setParameter("system", "vinuxpost"); try { Part part[] = UploadRequestHelper.getPart(request); filePost.s

HttpClient发送get post请求和数据解析

最近在跟app对接的时候有个业务是微信登录,在这里记录的不是如何一步步操作第三方的,因为是跟app对接,所以一部分代码不是由我写,我只负责处理数据,但是整个微信第三方的流程大致都差不多,app端说要传给我access_token和openid,对用户的处理还是要我去请求微信.这里写一下发送请求以及解析数据的过程来获取用户资料,其他的微信业务再做深究 import org.apache.http.HttpResponse; import org.apache.http.client.HttpCli

HttpClient 的GET(带参数)、POST请求方式,工具类方法

/** * 连接/断开操作 post方式 * @param url * @param json */ private boolean connOrDisconnOperator(String url,String json){ CloseableHttpClient client = null; CloseableHttpResponse response = null; boolean flag = false; try{ HttpPost httpPost = new HttpPost(ur

httpclient发送无参数的post数据

两个问题: 1.httpclient如何发送一个没有任何参数的post数据呢? 2.Web工程如何去接收一个无参数的post呢? 起因: 今天(2014.11.10)在开发中碰到了一个问题,接口提供方提供的接口是要求使用post方式发送数据的,心想这不超简单的一个东西吗?直接post过去不就是了,但是,提供的接口是没有任何参数的,不是类似这种http://api.dutycode.com/data/parm=xxx这种接口,而是http://api.dutycode.com/data.这个地址直

httpclient 4.3 post form带参数,提交文件/二进制数据

HttpClient httpClient = HttpClients.createDefault(); HttpPost httppost = new HttpPost(url); MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create(); //byte[] postBody mEntityBuilder.addBinaryBody(postName, postBody); //提交文件 //File fil

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

用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?

httpclient post请求例子(无参数名与带参数名的例子)

版本:4.1 带参数名的情况 HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); // httpPost.setHeader("Accept-Encoding", "gzip,deflate");//表示返回的数据是压缩的zip格式 String postParam = "";//请求的参数内容 List<NameVa

httpclient发送multipart/form-data类型参数和用MultipartRequest接收参数

一.利用HttpClient发送基于Content-Type="multipart/form-data"形式的表单 package com.test.httpclient; import java.io.IOException; import java.util.Map; import javax.servlet.ServletException; import org.apache.commons.httpclient.methods.RequestEntity; import or