天天看點

html調用天氣預報wsdl服務,天氣預報webserviceweb service實作天氣預報的詳細步驟

天氣預報webserviceweb service實作天氣預報的詳細步驟

天氣預報webservice  時間:2021-06-03  閱讀:()

webservice簡單說, WebService就是一些站點開放一些服務出來, 也可以是你自己開發的Service, 也就是一些方法, 通過URL,指定某一個方法名,送出請求,站點裡的這個服務(方法),接到你的請求,根據傳過來的參數,做一些處理, 然後把處理後的結果以XML形式傳回來給你,你的程式就解析這些XML資料,然後顯示出來或做其它操作.

舉個例子: 很多大的站點提供有天氣預報的WebService,隻要你送出請求過來,它就傳回天氣預報的資料,然後你把結果顯示在自己的程式上.

什麼是webservice 能否舉個通俗易懂的例子啊

表面上看,Web service 就是一個應用程式,它向外界暴露出一個能夠通過Web進行調用的API。

這就是說,你能夠通過Web來調用這個應用程式。

WebService的定義是什麼?你想了解什麼?Web Service是一種基于SOAP協定的技術,中文名稱是“Web服務”,您可以使用Web Service建立自定義的方法,Web Service現如今被廣泛應用,如:您需要去調用某個網站的天氣預報,如果對方的網站支援Web Service,您就可以自己用程式設計的方式去調用它的方法,進而獲得天氣資訊,Web Service的優點是可以實作跨平台調用,也就是說您使用Java建立的Web Service可以在.Net裡面建立方法直接調用,非常友善,著名的有亞馬遜的EC2平台,您可以利用該網站的Web Service調用該網站的所有的産品資訊,進而達到資訊分享!而且Web Service是以XML方式傳送資料的,是以傳輸速度非常快速!如果您想了解更多請繼續提問!互相交流學習!

android怎麼通路天氣webservice,用網上找的連結都不行WebService是一種基于SOAP協定的遠端調用标準,通過webservice可以将不同作業系統平台、不同語言、不同技術整合到一塊。

在Android SDK中并沒有提供調用WebService的庫,是以,需要使用第三方的SDK來調用WebService。

PC版本的WEbservice用戶端庫非常豐富,例如Axis2,CXF等,但這些開發包對于Android系統過于龐大,也未必很容易移植到Android系統中。

是以,這些開發包并不是在我們的考慮範圍内。

适合手機的WebService用戶端的SDK有一些,比較常用的有Ksoap2,可以從/p/ksoap2-android/downloads/list進行下載下傳;将下載下傳的ksoap2-android-assembly-2.4-jar-with-dependencies.jar包複制到Eclipse工程的lib目錄中,當然也可以放在其他的目錄裡。

同時在Eclipse工程中引用這個jar包。

具體調用調用webservice的方法為:

(1) 指定webservice的命名空間和調用的方法名,如:

SoapObject request =new SoapObject(http://service,”getName”);

SoapObject類的第一個參數表示WebService的命名空間,可以從WSDL文檔中找到WebService的命名空間。

第二個參數表示要調用的WebService方法名。

(2) 設定調用方法的參數值,如果沒有參數,可以省略,設定方法的參數值的代碼如下:

Request.addProperty(“param1”,”value”);

Request.addProperty(“param2”,”value”);

要注意的是,addProperty方法的第1個參數雖然表示調用方法的參數名,但該參數值并不一定與服務端的WebService類中的方法參數名一緻,隻要設定參數的順序一緻即可。

(3) 生成調用Webservice方法的SOAP請求資訊。

該資訊由SoapSerializationEnvelope對象描述,代碼為:

SoapSerializationEnvelope envelope=new

SoapSerializationEnvelope(SoapEnvelope.VER11);

Envelope.bodyOut = request;

建立SoapSerializationEnvelope對象時需要通過SoapSerializationEnvelope類的構造方法設定SOAP協定的版本号。

該版本号需要根據服務端WebService的版本号設定。

在建立SoapSerializationEnvelope對象後,不要忘了設定SOAPSoapSerializationEnvelope類的bodyOut屬性,該屬性的值就是在第一步建立的SoapObject對象。

(4) 建立HttpTransportsSE對象。

通過HttpTransportsSE類的構造方法可以指定WebService的WSDL文檔的URL:

HttpTransportSE ht=new HttpTransportSE(“http://192.168.18.17:80

/axis2/service/SearchNewsService?wsdl”);

(5)使用call方法調用WebService方法,代碼:

ht.call(null,envelope);

Call方法的第一個參數一般為null,第2個參數就是在第3步建立的SoapSerializationEnvelope對象。

(6)使用getResponse方法獲得WebService方法的傳回結果,代碼:

SoapObject soapObject =( SoapObject) envelope.getResponse();

以下為簡單的實作一個天氣檢視功能的例子:

lass WebService extends Activity {

privatestaticfinal String NAMESPACE ="/";

// WebService位址

privatestatic String URL ="/

webservices/weatherwebservice.asmx";

privatestaticfinal String METHOD_NAME ="getWeatherbyCityName";

privatestatic String SOAP_ACTION ="/

getWeatherbyCityName";

private String weatherToday;

private Button okButton;

private SoapObject detail;

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

okButton = (Button) findViewById(R.id.ok);

okButton.setOnClickListener(new Button.OnClickListener() {

publicvoid onClick(View v) {

showWeather();

}

});

}

privatevoid showWeather() {

String city ="武漢";

getWeather(city);

}

@SuppressWarnings("deprecation")

publicvoid getWeather(String cityName) {

try {

System.out.println("rpc------");

SoapObject rpc =new SoapObject(NAMESPACE, METHOD_NAME);

System.out.println("rpc"+ rpc);

System.out.println("cityName is "+ cityName);

rpc.addProperty("theCityName", cityName);

AndroidHttpTransport ht =new AndroidHttpTransport(URL);

ht.debug =true;

SoapSerializationEnvelope envelope =new SoapSerializationEnvelope(

SoapEnvelope.VER11);

envelope.bodyOut = rpc;

envelope.dotNet =true;

envelope.setOutputSoapObject(rpc);

ht.call(SOAP_ACTION, envelope);

SoapObject result = (SoapObject) envelope.bodyIn;

detail = (SoapObject) result

.getProperty("getWeatherbyCityNameResult");

System.out.println("result"+ result);

System.out.println("detail"+ detail);

Toast.makeText(WebService.this, detail.toString(),

Toast.LENGTH_LONG).show();

parseWeather(detail);

return;

} catch (Exception e) {

e.printStackTrace();

}

}

privatevoid parseWeather(SoapObject detail)

throws UnsupportedEncodingException {

String date = detail.getProperty(6).toString();

weatherToday ="今天:"+ date.split("")[0];

weatherToday = weatherToday +"

天氣:"+ date.split("")[1];

weatherToday = weatherToday +"

氣溫:"

+ detail.getProperty(5).toString();

weatherToday = weatherToday +"

風力:"

+ detail.getProperty(7).toString() +"

";

System.out.println("weatherToday is "+ weatherToday);

Toast.makeText(WebService.this, weatherToday,

Toast.LENGTH_LONG).show();

}

}

web service實作天氣預報的詳細步驟<iframe allowtransparency="true" id="weather" scrolling="no" frame marginwidth="1" marginheight="1" height="250" width="700" src="/tb.q">

</iframe>

soso的

天氣預報webservice為你推薦

備案域名查詢 域名管理 網站備案域名查詢 廣州主機租用 免費linux主機 泛域名解析 如何注冊中文域名 購買域名和空間 google鏡像 plesk Dedicated permitrootlogin 60g硬碟 中國特價網 免費全能空間 元旦促銷 伺服器硬體防火牆 789 智能dns解析 美國鹽湖城 更多