httpcore,httpclient的使用

例子,發送短信java

<!-- 短信通知 -->	
	<bean id="smsNotifierMap" class="com.xxx.zhenao.SmsNotifier">
		<property name="smsUrl" value="${sms.url}"/>
		<property name="smsAccount" value="${sms.account}"/>
		<property name="smsPassword" value="${sms.password}"/>
	</bean>
public class SmsNotifier implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -1146414140441377786L;
	private String smsUrl;
	private String smsAccount;
	private String smsPassword;
	public String getSmsUrl() {
		return smsUrl;
	}
	public void setSmsUrl(String smsUrl) {
		this.smsUrl = smsUrl;
	}
	public String getSmsAccount() {
		return smsAccount;
	}
	public void setSmsAccount(String smsAccount) {
		this.smsAccount = smsAccount;
	}
	public String getSmsPassword() {
		return smsPassword;
	}
	public void setSmsPassword(String smsPassword) {
		this.smsPassword = smsPassword;
	}
	
}

MessageServiceImpl 實現以下apache

@Autowired
	private SmsNotifier smsNotifierMap;
/**
	 * 調用正奧短信接口
	 */
	private String sendsZhenao(String phonenumber,String msgContent){
		String sendResult = SmsClientSend.sendSms(smsNotifierMap.getSmsUrl(), smsNotifierMap.getSmsAccount(), smsNotifierMap.getSmsPassword(), phonenumber, msgContent);
		String[] strArr = sendResult.split(":");
		String[] resultArr = strArr[2].split(",");
		return resultArr[0];
	}
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

/**
 * 
* @ClassName: SmsClientSend 

* @Description: 短信發送 
 */
public class SmsClientSend {



	
	/**
	 * @param url
	 *            :必填--發送鏈接地址URL--好比>http://139.129.128.71:8086/msgHttp/json/mt
	 * 
	 * @param account
	 *            :必填--用戶賬號
	 * @param password
	 *            :必填--數字簽名:(接口密碼、時間戳32位MD5加密生成)
	 * @param mobile
	 *            :必填--發送的手機號碼,多個能夠用逗號隔好比>13512345678,13612345678
	 * @param content
	 *            :必填--實際發送內容
	 * @return 返回發送以後收到的信息
	 */
	public static String sendSms(String url,String account,
			String password, String mobile, String content) {
		String resultContent = "";
		CloseableHttpClient httpclient = HttpClients.createDefault();
		CloseableHttpResponse response = null;
		
		HttpPost httpPost = new HttpPost(url);
		List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();  
		long timestamps = System.currentTimeMillis();
		
		formparams.add(new BasicNameValuePair("account", account));
		formparams.add(new BasicNameValuePair("password", SecurityUtil.getMD532Str(password+mobile+timestamps)));
		formparams.add(new BasicNameValuePair("mobile", mobile));
		formparams.add(new BasicNameValuePair("content", content));
		formparams.add(new BasicNameValuePair("timestamps", timestamps+""));
		
		

	    UrlEncodedFormEntity uefEntity;
		try {
			long start = System.currentTimeMillis();
			uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
		    httpPost.setEntity(uefEntity);   
		    System.out.println("1 "+EntityUtils.toString(httpPost.getEntity()));
		    System.out.println("2 "+"httpPost.-->"+httpPost.toString());
		    CloseableHttpResponse httpResponse = httpclient.execute(httpPost);
		    System.out.println("3 "+"httpResponse-->"+httpResponse.toString());
		    HttpEntity entity = httpResponse.getEntity();
		    System.out.println("4 "+httpResponse.getStatusLine().toString());
			if (entity != null) {
				resultContent = EntityUtils.toString(entity, "UTF-8");
				System.out.println("5\n "+resultContent);
			}
			long end = System.currentTimeMillis();
			System.out.println("cost -->"+(end -start));
			
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			// 關閉鏈接,釋放資源
			try {
				if(response != null){
					response.close();
				}
				httpclient.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return resultContent;
	}
}
相關文章
相關標籤/搜索