<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

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


    網站導航:
     
    主站蜘蛛池模板: 又粗又大又黑又长的免费视频| 久久久亚洲AV波多野结衣| 欧洲 亚洲 国产图片综合| 日韩在线视频免费| 免费成人午夜视频| 黄色网址大全免费| 久久久久亚洲av毛片大| 人体大胆做受免费视频| 国产电影午夜成年免费视频| 亚洲精品欧洲精品| 7723日本高清完整版免费| 亚洲免费福利视频| 男女一进一出抽搐免费视频| 免费无码又爽又刺激聊天APP| 亚洲中文字幕无码久久精品1| 亚洲熟女www一区二区三区| 天天拍拍天天爽免费视频| 亚洲最大福利视频网站| 亚洲免费福利视频| 亚洲精品~无码抽插| 亚洲人成人网站18禁| 亚洲不卡无码av中文字幕| 国产激情久久久久影院老熟女免费| 免费a级毛片无码a∨蜜芽试看| 337p日本欧洲亚洲大胆人人| 久久亚洲色一区二区三区| 亚洲6080yy久久无码产自国产| 亚洲国产主播精品极品网红 | 四虎永久免费观看| 免费在线黄色电影| 亚洲黄色在线观看网站| 天天摸天天操免费播放小视频| a级毛片免费观看网站| 国产精品免费视频网站| 思思久久99热免费精品6| 久久亚洲精品国产精品黑人| 成年美女黄网站色大免费视频| 日韩精品免费一线在线观看| 亚洲黄色免费网址| 免费视频成人手机在线观看网址| 亚洲国产片在线观看|