使用httpclient实现http接口调用实例
假设服务接口如下:
接口地址: http://192.168.0.1/service/sendsms
请求方式: post
需要传递参数: c= {"uid":"10000","title":"test a title","content":"this is a test"}
参数内容为json格式
输出:{result:0,code:"success"}
格式为json格式:result:1 .成功,0. 失败
code: 为提示信息
客户端调用代码:使用httpclient-4.0.1.jar
- package com.yanek.test;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import net.sf.json.JSONObject;
- import org.apache.http.HttpResponse;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.http.util.EntityUtils;
- public class TestSendSMS {
- /**
- * @param args
- */
- public static void main(String[] args) {
- String uid="12345678";
- String title="test";
- String content="test a content";
- String ret=sendSms(uid ,title,content);
- System.out.println(ret);
- if(ret.indexOf("失败")<0)
- {
- System.out.println("成功发送sms");
- }
- else
- {
- System.out.println("失败发送");
- }
- }
- public static String sendSms(String uid,String title,String content){
- HttpClient httpclient = new DefaultHttpClient();
- String smsUrl="http://192.168.0.1/service/sendsms";
- HttpPost httppost = new HttpPost(smsUrl);
- String strResult = "";
- try {
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
- JSONObject jobj = new JSONObject();
- jobj.put("uid", uid);
- jobj.put("title", title);
- jobj.put("content",content);
- nameValuePairs.add(new BasicNameValuePair("msg", getStringFromJson(jobj)));
- httppost.addHeader("Content-type", "application/x-www-form-urlencoded");
- httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
- HttpResponse response = httpclient.execute(httppost);
- if (response.getStatusLine().getStatusCode() == 200) {
- /*读返回数据*/
- String conResult = EntityUtils.toString(response
- .getEntity());
- JSONObject sobj = new JSONObject();
- sobj = sobj.fromObject(conResult);
- String result = sobj.getString("result");
- String code = sobj.getString("code");
- if(result.equals("1")){
- strResult += "发送成功";
- }else{
- strResult += "发送失败,"+code;
- }
- } else {
- String err = response.getStatusLine().getStatusCode()+"";
- strResult += "发送失败:"+err;
- }
- } catch (ClientProtocolException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return strResult;
- }
- private static String getStringFromJson(JSONObject adata) {
- StringBuffer sb = new StringBuffer();
- sb.append("{");
- for(Object key:adata.keySet()){
- sb.append("\""+key+"\":\""+adata.get(key)+"\",");
- }
- String rtn = sb.toString().substring(0, sb.toString().length()-1)+"}";
- return rtn;
- }
- }