<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 朱杰兵 閱讀(1214) 評論(0)  編輯  收藏

    通過HttpClient請求webService 

    由于服務端是用webService開發的,android要調用webService服務獲取數據,這里采用的是通過HttpClient發送post請求,獲取webService數據。
     
    服務端使用的webService框架是axis2,請求數據之前,要封裝一個xml格式,再通過post請求,獲取服務端數據。
    請求的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是參數名,當然,還可以加多個參數。
     
     
    下面的代碼是向webService發送請求,獲取數據,返回的數據是xml形式的,android只要解析xml數據,就可以獲得想要的數據了。 

    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格式數據
    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數據
    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 }

    返回的數據格式如下: 
    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>內的"xxx"可以是json數據,android只需解析標簽<ns:return>里的json數據即可。 
    轉載 http://www.juziku.com/wiki/3919.htm

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


    網站導航:
     
    主站蜘蛛池模板: 午夜无码A级毛片免费视频| 亚洲一区二区三区不卡在线播放| 四虎影院免费视频| 成人免费看片又大又黄| 亚洲AV无码成人精品区大在线| 亚洲免费日韩无码系列| 亚洲精品视频专区| 国产午夜亚洲精品不卡免下载| 免费视频成人国产精品网站| 污污网站18禁在线永久免费观看| 亚洲精品免费视频| 亚洲日韩国产二区无码| 国产精品偷伦视频免费观看了| 18禁美女黄网站色大片免费观看| 成年女人免费v片| 亚洲AⅤ男人的天堂在线观看| 一区二区在线免费观看| 亚洲经典在线中文字幕| 成人无遮挡裸免费视频在线观看| 国产午夜亚洲精品国产成人小说| 精品久久亚洲中文无码| 免费的一级黄色片| 日韩精品一区二区亚洲AV观看| 视频免费1区二区三区| 夭天干天天做天天免费看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 日韩精品免费一级视频| 亚洲国产成人久久综合一区77| www免费插插视频| 国产成人免费永久播放视频平台| 亚洲视频一区在线| 日韩视频免费在线观看| 亚洲黄黄黄网站在线观看| A级毛片高清免费视频在线播放| 国产老女人精品免费视频| 男人j进女人p免费视频| 亚洲AV无码欧洲AV无码网站| 深夜福利在线免费观看| 久久久久久亚洲av成人无码国产| 99麻豆久久久国产精品免费| 亚洲AV无码一区二区三区在线观看|