使用HttpClient4提交包含上传文件的表单

时间:2023-01-17 14:38:31

第一步,还是得到Httpclient,得到请求方式httppost

第二步,得到entity,键值对存储数据,用来与服务器进行交互,因为是文件,所以采用了multipartentity,将数据存进entity

第三步,将httppost携带entity数据,寻找引用httppost.setentity

第四步,httpclient寻找httppost引用,运行


今天做项目,需要调用新浪微博的API,由于项目的特殊性,采取了自己实现API调用代码的功能。新浪微博的API调用是才用https的方式,在发表微博的时候,需要才用POST的方式来提交参数。如果需要上传图片,则同时提交一个名称为pic的byte[]数组。

部分代码,仅供参考:
HttpPost httppost = new HttpPost("http://blog.sina.com/yangyanyangyanyangyan/article_add.php"); 
FileBody bin = new FileBody(new File("d:/123.JPG")); 
StringBody s = new StringBody("新浪微博"); 
MultipartEntity reqEntity = new MultipartEntity();  //关键
reqEntity.addPart("pic", bin); 
reqEntity.addPart("status", s);//可以设置charset,如果发出去的中文是乱码,则可以设置Charset参数来设置编码
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);