<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    朱杰兵blog

    jonhney'blog
    posts - 140, comments - 1, trackbacks - 0, articles - 0

    通過HttpClient請求webService

    Posted on 2017-05-24 16:10 朱杰兵 閱讀(1222) 評論(0)  編輯  收藏

    通過HttpClient請求webService 

    由于服務(wù)端是用webService開發(fā)的,android要調(diào)用webService服務(wù)獲取數(shù)據(jù),這里采用的是通過HttpClient發(fā)送post請求,獲取webService數(shù)據(jù)。
     
    服務(wù)端使用的webService框架是axis2,請求數(shù)據(jù)之前,要封裝一個xml格式,再通過post請求,獲取服務(wù)端數(shù)據(jù)。
    請求的xml格式如下所示: 
    1 <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"xmlns:sam="http://user.service.xxx.com">
    2    <soap:Header/>
    3    <soap:Body>
    4       <sam:getUserInfo>
    5      <sam:userName>sunlightcs</sam:userName>
    6       </sam:getUserInfo>
    7    </soap:Body>
    8 </soap:Envelope>
    其中:getUserInfo是方法名,userName是參數(shù)名,當(dāng)然,還可以加多個參數(shù)。
     
     
    下面的代碼是向webService發(fā)送請求,獲取數(shù)據(jù),返回的數(shù)據(jù)是xml形式的,android只要解析xml數(shù)據(jù),就可以獲得想要的數(shù)據(jù)了。 

    01 import java.io.IOException;
    02 import java.io.OutputStream;
    03 import java.io.OutputStreamWriter;
    04 import java.io.Writer;
    05  
    06 import org.apache.http.HttpResponse;
    07 import org.apache.http.client.HttpClient;
    08 import org.apache.http.client.methods.HttpPost;
    09 import org.apache.http.entity.ContentProducer;
    10 import org.apache.http.entity.EntityTemplate;
    11 import org.apache.http.impl.client.DefaultHttpClient;
    12 import org.apache.http.util.EntityUtils;
    13  
    14  
    15 public class ClientTest {
    16  
    17     public static void main(String[] args) {
    18         ClientTest.httpClientPost();
    19     }
    20      
    21     private static void httpClientPost() {
    22         HttpClient client = new DefaultHttpClient();
    23         HttpPost post = newHttpPost("http://localhost:8080/xxx/services/userService");
    24          
    25         try {
    26             ContentProducer cp = new ContentProducer() {
    27                 public void writeTo(OutputStream outstream) throwsIOException {
    28                     Writer writer = new OutputStreamWriter(outstream,"UTF-8");
    29                      
    30                     /**
    31                      * 獲取請求的xml格式數(shù)據(jù)
    32                      */
    33                     String requestXml = getRequestXml();
    34                     writer.write(requestXml);
    35                     writer.flush();
    36                 }
    37             };
    38  
    39             post.setEntity(new EntityTemplate(cp));
    40             HttpResponse response = client.execute(post);
    41              
    42         //打印返回的xml數(shù)據(jù)
    43             System.out.println(EntityUtils.toString(response.getEntity()));
    44         catch (IOException e) {
    45             e.printStackTrace();
    46         }
    47     }
    48      
    49      
    50     private static String getRequestXml(){
    51         StringBuilder sb = new StringBuilder("<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:sam=\"http://user.service.xxx.com\">");
    52         sb.append("<soap:Header/>");
    53         sb.append("<soap:Body>");
    54         sb.append("<sam:getUserInfo>");
    55         sb.append("<sam:userName>sunlightcs</sam:userName>");
    56         sb.append("</sam:getUserInfo>");
    57         sb.append("</soap:Body>");
    58         sb.append("</soap:Envelope>");
    59          
    60         return sb.toString();
    61     }
    62  
    63 }

    返回的數(shù)據(jù)格式如下: 
    1 <?xml version='1.0' encoding='UTF-8'?>
    2 <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
    3     <soapenv:Body>
    4         <ns:getUserInfoResponse xmlns:ns="http://user.service.xxx.com">
    5             <ns:return>xxx</ns:return>
    6         </ns:getUserInfoResponse>
    7     </soapenv:Body>
    8 </soapenv:Envelope>
    其中,<ns:return>內(nèi)的"xxx"可以是json數(shù)據(jù),android只需解析標簽<ns:return>里的json數(shù)據(jù)即可。 
    轉(zhuǎn)載 http://www.juziku.com/wiki/3919.htm

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品A在线观看| 一级毛片免费毛片一级毛片免费| 国产一精品一AV一免费孕妇 | 久久久高清日本道免费观看| 亚洲日本va中文字幕久久| 99精品视频在线观看免费| 亚洲欧洲成人精品香蕉网| 日本免费一区二区久久人人澡| 久久亚洲免费视频| 91精品手机国产免费| 亚洲国产精品综合久久20| 日韩在线a视频免费播放| 精品久久久久久亚洲中文字幕| 免费在线观看理论片| 国产一级a毛一级a看免费人娇| 久久久久亚洲av无码专区蜜芽| 中国人xxxxx69免费视频| 亚洲AV无码一区二区三区性色 | 国产麻豆一精品一AV一免费| 亚洲∧v久久久无码精品| 人成午夜免费视频在线观看| 伊人久久亚洲综合影院首页| 波多野结衣中文一区二区免费| 丰满人妻一区二区三区免费视频| 亚洲国产精品久久久久| 成人免费无遮挡无码黄漫视频| 成人午夜免费视频| 18gay台湾男同亚洲男同| 大学生一级特黄的免费大片视频| 成人精品综合免费视频| 666精品国产精品亚洲| 又大又黄又粗又爽的免费视频| AAA日本高清在线播放免费观看| 亚洲区精品久久一区二区三区| 精品久久免费视频| 亚洲免费人成在线视频观看| 亚洲综合中文字幕无线码| 国产精品亚洲美女久久久| av无码国产在线看免费网站| 一区二区视频在线免费观看| 亚洲成av人片不卡无码|