亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android 使用HTTPClient調(diào)用Web請求(查詢手機(jī)

系統(tǒng) 2569 0

?????? Android通過Apache HttpClient調(diào)用網(wǎng)上提供的WebService服務(wù),獲取電話號碼所屬的區(qū)域。調(diào)用的服務(wù)的網(wǎng)址:

http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo

??????

?????? 以前用2.2 訪問WebService沒有問題,到3.0上訪問出現(xiàn) android.os.NetworkOnMainThreadException

找了資料經(jīng)過實踐,解決方法如下:

?????

    ///在Android2.2以后必須添加以下代碼
		//本應(yīng)用采用的Android4.0
		//設(shè)置線程的策略
		 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()   
         .detectDiskReads()   
         .detectDiskWrites()   
         .detectNetwork()   // or .detectAll() for all detectable problems   
         .penaltyLog()   
         .build());   
		//設(shè)置虛擬機(jī)的策略
		  StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()   
		         .detectLeakedSqlLiteObjects()   
		         .detectLeakedClosableObjects()   
		         .penaltyLog()   
		         .penaltyDeath()   
		         .build());
  

?

?

  
  

?

似乎是3.0在網(wǎng)絡(luò)上做了更加嚴(yán)格的限制,更多的查詢API上的 StrictMode 。。。。

項目結(jié)構(gòu)如下:

Android 使用HTTPClient調(diào)用Web請求(查詢手機(jī)號碼區(qū)域)

運行結(jié)果如下:

?

? Android 使用HTTPClient調(diào)用Web請求(查詢手機(jī)號碼區(qū)域)

?

實現(xiàn)代碼如下:

?

    package com.easyway.android.query.telephone;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

/**
 * 利用網(wǎng)上提供的WebService使用
 * HttpClient運用之手機(jī)號碼歸屬地查詢
 * 參看WebService地址:
 *    http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
 *    
 *    可以采用
 *      SOAP1.1,SOAP1.2,HTTP GET,HTTP POST
 * 
 * @author longggangbai
 * 
 */
public class AndroidQueryTelCodeActivity extends Activity {
	private EditText phoneSecEditText;
	private TextView resultView;
	private Button queryButton;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		///在Android2.2以后必須添加以下代碼
		//本應(yīng)用采用的Android4.0
		//設(shè)置線程的策略
		 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()   
         .detectDiskReads()   
         .detectDiskWrites()   
         .detectNetwork()   // or .detectAll() for all detectable problems   
         .penaltyLog()   
         .build());   
		//設(shè)置虛擬機(jī)的策略
		  StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()   
		         .detectLeakedSqlLiteObjects()   
		         .detectLeakedClosableObjects()   
		         .penaltyLog()   
		         .penaltyDeath()   
		         .build());
		
		super.onCreate(savedInstanceState);
		//設(shè)置界面布局
		setContentView(R.layout.main);
		//初始化界面
        initView();
        //設(shè)置各種監(jiān)聽
		setListener();
	}
	/**
	 * 界面相關(guān)的各種設(shè)置
	 */
	private void initView() {
		//手機(jī)號碼編輯器
		phoneSecEditText = (EditText) findViewById(R.id.phone_sec);
		//
		resultView = (TextView) findViewById(R.id.result_text);
		queryButton = (Button) findViewById(R.id.query_btn);
	}
    /**
     * 設(shè)置各種事件監(jiān)聽的方法
     */
	private void setListener() {
		queryButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// 手機(jī)號碼(段)
				String phoneSec = phoneSecEditText.getText().toString().trim();
				// 簡單判斷用戶輸入的手機(jī)號碼(段)是否合法
				if ("".equals(phoneSec) || phoneSec.length() < 7) {
					// 給出錯誤提示
					phoneSecEditText.setError("您輸入的手機(jī)號碼(段)有誤!");
					//獲取焦點
					phoneSecEditText.requestFocus();
					// 將顯示查詢結(jié)果的TextView清空
					resultView.setText("");
					return;
				}
				// 查詢手機(jī)號碼(段)信息
				getRemoteInfo(phoneSec);
			}
		});
	}

	/**
	 * 手機(jī)號段歸屬地查詢
	 * 
	 * @param phoneSec
	 *            手機(jī)號段
	 */
	public void getRemoteInfo(String phoneSec) {
		// 定義待請求的URL
		String requestUrl = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo";
		// 創(chuàng)建HttpClient實例
		HttpClient client = new DefaultHttpClient();
		// 根據(jù)URL創(chuàng)建HttpPost實例
		HttpPost post = new HttpPost(requestUrl);

		List<NameValuePair> params = new ArrayList<NameValuePair>();
		// 設(shè)置需要傳遞的參數(shù)
		params.add(new BasicNameValuePair("mobileCode", phoneSec));
		params.add(new BasicNameValuePair("userId", ""));
		try {
			// 設(shè)置URL編碼
			post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
			// 發(fā)送請求并獲取反饋
			HttpResponse response = client.execute(post);

			// 判斷請求是否成功處理
			if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
				// 解析返回的內(nèi)容
				String result = EntityUtils.toString(response.getEntity());
				// 將查詢結(jié)果經(jīng)過解析后顯示在TextView中
				resultView.setText(filterHtml(result));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 使用正則表達(dá)式過濾HTML標(biāo)記
	 * 
	 * @param source
	 *            待過濾內(nèi)容
	 * @return
	 */
	private String filterHtml(String source) {
		if (null == source) {
			return "";
		}
		return source.replaceAll("</?[^>]+>", "").trim();
	}
}

  

?

?

界面代碼main.xml如下:

    <?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:paddingTop="5dip"  
    android:paddingLeft="5dip"  
    android:paddingRight="5dip"  
    >  
    <TextView  
        android:layout_width="fill_parent"   
        android:layout_height="wrap_content"   
        android:text="手機(jī)號碼(段):"  
    />  
    <EditText android:id="@+id/phone_sec"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:inputType="textPhonetic"  
        android:singleLine="true"  
        android:hint="例如:1398547(手機(jī)號碼前8位)"  
    />  
    <Button android:id="@+id/query_btn"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_gravity="right"  
        android:text="查詢"  
    />  
    <TextView android:id="@+id/result_text"  
        android:layout_width="wrap_content"   
        android:layout_height="wrap_content"   
        android:layout_gravity="center_horizontal|center_vertical"  
    />  
</LinearLayout>  

  

??

全局文件AndroidManifest.xml如下:

?

?

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.easyway.android.query.telephone"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="14" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".AndroidQueryTelCodeActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />  

</manifest>
  

??

?

?

?

?

?

Android 使用HTTPClient調(diào)用Web請求(查詢手機(jī)號碼區(qū)域)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费高清一级欧美片在线观看 | 一级毛片视频免费 | 日本a视频| 拔插拔插成人 | 久久国内精品自在自线观看 | 四虎影院观看视频在线观看 | 伊人免费视频二 | a级片日韩 | 亚洲视频在线精品 | 久久一本综合 | 国产成人a在一区线观看高清 | 男女污污视频在线观看 | 国外欧美一区另类中文字幕 | 四虎4hu永久免费国产精品 | 伊人一区二区三区 | 91在线亚洲 | 日韩美女强理论片 | 一级午夜a毛片免费视频 | 日本大胆一区免费视频 | 九九视频在线观看视频23 | 久久天天躁狠狠躁狠狠躁 | 狼人伊人干 | 久久久久国产精品免费免费 | 婷婷中文字幕 | 亚洲成人综合视频 | 中文乱码在线观看 | 日本爱爱网站 | 91成人在线视频 | 日本老太做爰xx | 国产精品久久综合桃花网 | 亚洲色无码播放 | 欧美 日韩 国产在线 | 精品国产自在久久 | 精品国产三级 | 奇米影视在线 | 欧美高清无砖专区欧美精品 | 香蕉尹人 | 夜夜女人国产香蕉久久精品 | 亚洲久操 | 国产亚洲综合久久 | 一级毛片视频 |