環保署即時空氣品質的WebService服務問題 |
缺席
|
ESCAPE
一般會員 發表:37 回覆:47 積分:16 註冊:2005-02-15 發送簡訊給我 |
請教各位有經驗的先進,目前小弟有個需求,是必須取得環保署即時空氣品質資料。環保署有提供WebService服務,但是嘗試了很久始終無法取得正確的資料,比如要取得所有測站代號,卻回傳「INTERR」的訊息。小弟也參考過許多範例但還是失敗,請有經驗的前輩測試看看是否也可以傳回正確的資料。在此請各位前輩不吝指教,謝謝。
環保署WebService:http://taqm.epa.gov.tw/taqm/DataService.asmx 環保署WSDL:http://taqm.epa.gov.tw/taqm/DataService.asmx?WSDL 小弟自行撰寫的程式碼,因為目前測試用,所以寫得很簡單,也請前輩們看看是否有錯誤,謝謝。 [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, InvokeRegistry, StdCtrls, Rio, SOAPHTTPClient, SOAPHTTPTrans; type TForm1 = class(TForm) Memo1: TMemo; HTTPRIO1: THTTPRIO; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses DdataService; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var idataservice:DataServiceSoap; begin memo1.Clear; iDataService:=HttpRio1 As DataServiceSoap; memo1.Lines.Add(iDataService.SiteList('xml')); ShowMessage('Ok'); end; end. [/code] 編輯記錄
ESCAPE 重新編輯於 2010-07-13 14:35:34, 註解 無‧
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
bestlong
站務副站長 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
|
HikaruGo
中階會員 發表:22 回覆:69 積分:88 註冊:2007-12-09 發送簡訊給我 |
delphi win32 call .NET 的WS SOAP 有些格式上的問題, 建議 使用 'MSSOAP.SoapClient' CALL WS. 請教各位有經驗的先進,目前小弟有個需求,是必須取得環保署即時空氣品質資料。環保署有提供WebService服務,但是嘗試了很久始終無法取得正確的資料,比如要取得所有測站代號,卻回傳「INTERR」的訊息。小弟也參考過許多範例但還是失敗,請有經驗的前輩測試看看是否也可以傳回正確的資料。在此請各位前輩不吝指教,謝謝。 環保署WebService:http://taqm.epa.gov.tw/taqm/DataService.asmx 環保署WSDL:http://taqm.epa.gov.tw/taqm/DataService.asmx?WSDL 小弟自行撰寫的程式碼,因為目前測試用,所以寫得很簡單,也請前輩們看看是否有錯誤,謝謝。 [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, InvokeRegistry, StdCtrls, Rio, SOAPHTTPClient, SOAPHTTPTrans; type TForm1 = class(TForm) Memo1: TMemo; HTTPRIO1: THTTPRIO; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses DdataService; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var idataservice:DataServiceSoap; begin memo1.Clear; iDataService:=HttpRio1 As DataServiceSoap; memo1.Lines.Add(iDataService.SiteList('xml')); ShowMessage('Ok'); end; end. [/code]
編輯記錄
HikaruGo 重新編輯於 2010-07-15 00:06:58, 註解 無‧
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
沒錯,Delphi 6 + HTTPRIO 發出的SOAP封包會和官網的範例不太一樣,可能就是造成INTERR的主因。
(不過此問題卻在Delphi 2010 SOAP 1.2後可以得到解決) 果然微軟開發的產品還是得用微軟的工具才有最佳的相容性啊~ 今天早上試了一下HikaruGo大所說的MSSOAP.SOAPClient。 在BCB6下也可以正常擷取耶!真是太厲害了啦!HikaruGo大大! ===================引 用 HikaruGo 文 章=================== delphi win32 call .NET 的WS SOAP 有些格式上的問題, 建議 使用 'MSSOAP.SoapClient' CALL WS. 該WebService 沒有中文引數,所以 使用此當Soluction 是比較好的方式.
|
ESCAPE
一般會員 發表:37 回覆:47 積分:16 註冊:2005-02-15 發送簡訊給我 |
===================引 用 GrandRURU 文 章=================== 沒錯,Delphi 6 HTTPRIO 發出的SOAP封包會和官網的範例不太一樣,可能就是造成INTERR的主因。 (不過此問題卻在Delphi 2010 SOAP 1.2後可以得到解決) 果然微軟開發的產品還是得用微軟的工具才有最佳的相容性啊~ 今天早上試了一下HikaruGo大所說的MSSOAP.SOAPClient。 在BCB6下也可以正常擷取耶!真是太厲害了啦!HikaruGo大大! ===================引 用 HikaruGo 文 章=================== delphi win32 call .NET 的WS SOAP 有些格式上的問題, 建議 使用 'MSSOAP.SoapClient' CALL WS. 該WebService 沒有中文引數,所以 使用此當Soluction 是比較好的方式.
不好意思,請問GrandRURU前輩,「MSSOAP.SOAPClient」是屬於元件嗎,要在哪裡加入? 因為我在Delphi 7似乎沒有這個元件。 再次感謝各位前輩的指教,謝謝。 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
GrandRURU 大大你好!!
小弟第一次嚐試的要寫 web service 的程式, 也是用 bcb6 你說到的: "今天早上試了一下HikaruGo大所說的MSSOAP.SOAPClient。 在BCB6下也可以正常擷取耶!" 是否能提供 sourcecode ,給小弟參考,謝謝您!!! ===================引 用 GrandRURU 文 章=================== 沒錯,Delphi 6 HTTPRIO 發出的SOAP封包會和官網的範例不太一樣,可能就是造成INTERR的主因。 (不過此問題卻在Delphi 2010 SOAP 1.2後可以得到解決) 果然微軟開發的產品還是得用微軟的工具才有最佳的相容性啊~ 今天早上試了一下HikaruGo大所說的MSSOAP.SOAPClient。 在BCB6下也可以正常擷取耶!真是太厲害了啦!HikaruGo大大! ===================引 用 HikaruGo 文 章=================== delphi win32 call .NET 的WS SOAP 有些格式上的問題, 建議 使用 'MSSOAP.SoapClient' CALL WS. 該WebService 沒有中文引數,所以 使用此當Soluction 是比較好的方式.
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
1. 使用soap toolkit 3.0 如果網站建立在自己可以控制的服務器,則可選擇安裝soap toolkit 3.0來使用。soap toolkit是微軟提供的web services解決方案。可以從下面的地址下載得到,它是免費的。 下載後,安裝即可。 2. 請參考 HikaruGo 大所寫的內容 ===================引 用 salo0610 文 章=================== GrandRURU大大你好!! 小弟第一次嚐試的要寫 web service 的程式, 也是用 bcb6 你說到的: "今天早上試了一下HikaruGo大所說的MSSOAP.SOAPClient。 在BCB6下也可以正常擷取耶!" 是否能提供 sourcecode ,給小弟參考,謝謝您!!! ===================引 用 GrandRURU 文 章=================== 沒錯,Delphi 6 HTTPRIO 發出的SOAP封包會和官網的範例不太一樣,可能就是造成INTERR的主因。 (不過此問題卻在Delphi 2010 SOAP 1.2後可以得到解決) 果然微軟開發的產品還是得用微軟的工具才有最佳的相容性啊~ 今天早上試了一下HikaruGo大所說的MSSOAP.SOAPClient。 在BCB6下也可以正常擷取耶!真是太厲害了啦!HikaruGo大大! ===================引 用 HikaruGo 文 章=================== delphi win32 call .NET 的WS SOAP 有些格式上的問題, 建議 使用 'MSSOAP.SoapClient' CALL WS. 該WebService 沒有中文引數,所以 使用此當Soluction 是比較好的方式.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |