http客户端服务器开发

以下是我在做一个政府短信平台时使用HttpClient及HttpServer实现短信收发功能。

1.HttpClint(Post请求)

  HttpClient httpClient=new HttpClient();
  httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"gb2312");
  try{
   PostMethod postMethod=new PostMethod("http://"+ip+":"+port+"/server工程名/getSms");     //ip、port分别是请求服务器的ip及端口)
   httpClient.setConnectionTimeout(3000);
   postMethod.setRequestHeader("Content-Type", "application/xml");
   postMethod.setRequestBody(getDXXmlInfo());       //设置请求内容
   httpClient.executeMethod(postMethod);

   }
   postMethod.releaseConnection();
   return true;
  }catch(Exception e){
   return false;
  }

private String getDXXmlInfo() {  //电信请求体xml
  msgContent=adjustCont1(msgContent);
  StringBuilder sb = new StringBuilder(); 
  sb.append("<?xml version='1.0' encoding='UTF-8'?>"); 
  sb.append("<eRequestService>"); 
  sb.append("     <ServicePoint>"+servicePoint+"</ServicePoint>"); 
  sb.append("     <SubServiceNum>"+subServiceNum+"</SubServiceNum>"); 
  sb.append("     <ServiceID>"+serviceID+"</ServiceID>"); 
  sb.append("     <SequenceID>"+sequenceID+"</SequenceID>"); 
  sb.append("     <Requester>"+requester+"</Requester>"); 
  sb.append("     <Caller>"+caller+"</Caller>"); 
  sb.append("     <Called>"+called+"</Called>");
  sb.append("     <Subject>"+subject+"</Subject>"); 
  sb.append("     <MsgID>"+msgID+"</MsgID>"); 
  sb.append("     <MsgContent>"+msgContent+"</MsgContent>");
  sb.append("     <FeeNumber>"+feeNumber+"</FeeNumber>"); 
  sb.append("     <FeeType>"+feeType+"</FeeType>"); 
  sb.append("     <FeeCode>"+feeCode+"</FeeCode>"); 
  sb.append("     <MsgFormat>"+msgFormat+"</MsgFormat>");
  sb.append("     <LongSms>"+longSms+"</LongSms>");
  sb.append("</eRequestService>");  
  return sb.toString(); 
 }

2.HttpClient(Get请求) 气象局提供的获取天气信息接口

import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;


public class WetherInfoService {


public static void main(String[]args){
try{
String url="http://www.weather.com.cn/adat/cityinfo/101280401.html"; 
HttpClient client=new HttpClient();
client.setConnectionTimeout(3000);
//设置代理
HostConfiguration config=new HostConfiguration();
config.setProxy("10.200.100.81",8080);
client.setHostConfiguration(config);
HttpMethod method=new GetMethod(url);
client.executeMethod(method);
System.out.println("返回的天气信息:"+method.getResponseBodyAsString());
}catch(Exception e){
System.out.println(e);
System.out.println("获取天气信息失败");
}
}
}

 

3.HttpServer

a.核心代码

import java.io.IOException;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.suntek.xfsms.dao.XfOrderDAO;
import com.suntek.xfsms.log.XfSmsLogger;
import com.suntek.xfsms.util.Constant;

public class SmsService extends HttpServlet{


 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  recSms(req, resp);
 }

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  doPost(req, resp);
 }
 
 protected void recSms(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {   
  Enumeration enu2=req.getParameterNames();  
  while(enu2.hasMoreElements()){  
  String paraName=(String)enu2.nextElement();   
  System.out.println("[SmsService.service]请求参数名字:--------------------->"+paraName);
  System.out.println("[SmsService.service]请求参数内容:--------------------->"+req.getParameter(paraName));
  }  
 }

}

b.web.xml注册servlet

    <!-- 开启接收短信服务器 -->
   <servlet>
  <servlet-name>SmsService</servlet-name>
  <servlet-class>com.suntek.xfsms.servlet.SmsService</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>SmsService</servlet-name>
  <url-pattern>/getSms</url-pattern>
 </servlet-mapping>

c.访问

客户端通过http://ip:port/server工程名/getSms 即可访问服务端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值