1. DELPHI調用JAVA WEBSERVICE方法,怎麼傳遞對象
web service 一般是用 HTTP / HTTPS 協議來訪問的,也就是說只要對方給一個 WSDL 給我們並且說明了它處理這個請求的 URL 是什麼,就可以把我們的調用參數和方法名拼接成一個 xml 文件向這個 http URL 發送,然後接收它的回復 xml 再解碼!
2. delphi 開發web怎樣
Web 開發有多種應用形式,要看應用的平台(比如是電腦還是手機)。
以下提供用 delphi 開發 web 的一些方式:
一、使用 Indy 組件包里的 Internet 控制項
如果是開發網路應用(架構web伺服器等),可以使用 Indy 組件包里的 Internet 控制項。
二、使用 IntraWeb 組件
IntraWeb很像是普通的應用程序,唯一不同的是它的用戶界面是用瀏覽器代替了通常的Windows界面,當把應用程序安裝到Web伺服器上之後,用戶馬上就可以通過它的網路地址來開啟它,應用程序會馬上建立使用者的用戶信息,這樣就可以避免丟失用戶信息或者與其它的使用者發生使用混亂。
三、開發 Android / IOS 手機應用
此外,UniGUI 組件包改編 ExtJS 框架,提供了一整套的 web UI 元素。
3. 如何有delphi5調用webservice,別人寫的webservice
Delphi調用C#寫的webservice
用delphi的THTTPRIO控制項調用了c#寫的webservice。
下面是我調試時遇到的一些問題:
1:導入wsdl文件:file--new----other----webservice---WSDLimporter---輸入wsdl地址:如下:http://127.0.0.1/ WebService/WebServiceCall.asmx?wsdl
注意末尾的:'?wsdl'不能少。要不可能會說找不到。
2:設置THTTPRIO控制項的屬性:
把http://127.0.0.1/WebService/WebServiceCall.asmx?wsdl賦給URL屬性,而不是賦給wsdlLocation屬性。
3:傳遞參數是web服務端總為空:
在導入的介面單元的聲明部分添加如下代碼:
InvRegistry.RegisterInvokeOptions(TypeInfo(Service1Soap),ioDocument);//其中紅色部分為導入介面名稱。
在IIS中配置C#寫的webservice,有時候會出現如下的錯誤:
--------------------------------------------------------分析器錯誤消息:在應用程序級別之外使用注冊為allowDefinition='MachineToApplication'的節是錯誤的。如果在IIS中沒有將虛擬目錄配置為應用程序,則可能導致此錯誤。源錯誤:安全身份驗證模式。--><authentication mode="Windows"/><!--如果在執行請求的過程中出現未處理的錯誤------------------------------------------------------------------------------解決方法:在要發布的虛擬目錄中的創建一個應用程序。步驟
你的站點-->選中你要發布的虛擬目錄-->右鍵單擊-->屬性-->目錄(選項卡)-->應用程序名-->創建 -->確定。
然後再重新訪問頁面,應該就OK了。
Delphi 7建立測試程序1、新建一個應用程序:2、拖一個button一個edit和一個HTTPRIO(在webservices頁上)到窗體上;3、接下來:File-> new-> other-> webservices-> WSDL importer輸入wsdl文件地址,點擊next 導入保存unit Service14、在unit1(form1 的單元文件)中引用Service15、HTTPRIO1的URL屬性設置為'http://localhost/WebService1/Service1.asmx?WSDL '6、添加form1 的代碼如下:unit Unit1
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, InvokeRegistry, Rio, SOAPHTTPClient;type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; HTTPRIO1: THTTPRIO; procere Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementationuses Service1;{$R *.dfm}procere TForm1.Button1Click(Sender: TObject);begin Edit1.Text:=(HTTPRIO1 as Service1Soap).HelloWorld;end;end.
如果有時候測試發現,還是不行.......可能有下面的問題,
在用VS2005寫的WebService的類屬性中加入SoapRpcServiceAttribute屬性就可以了。如下: [SoapRpcService(RoutingStyle=SoapServiceRoutingStyle.SoapAction)]
Delphi開發和調用的webservice
下面說明如何編寫用於IIS發布的ISAPI類型的WebService。
1、New|Other|WebServices|SOAP Server Application|這里先選擇建立Web App Debugger類型的WebService,因為這種類型的WebService便於調試,當我們調試好它,准備發布時再將此類型轉換為ISAPI類型。
2、選擇Web App Debugger後,隨便輸入一個ClassName,這里我們輸入「Test」
3、隨後Delphi會詢問你是否建立介面單元,選擇是,然後輸入介面的名字,我們輸入Main,Delphi將自動建立介面單元(名字為你輸入的介面名+Intf結束,即MainIntf)和實現介面的單元(名字為你輸入的介面名+Impl,即MainImpl)。到此一個空的WebService已建立好。
4、接下來我們將編寫供別人調用的WebService函數。在此我們編寫一個簡單的例子。打開介面單元(MainIntf),在Type後,介面聲明後添加介面函數
「function GetMsg(AMsg: string): String; stdcall;」,函數後面必須加上「stdcall」。
如圖:
打開如下圖所示的的dll描述頁面,該dll中有一個個介面函數GetMsg,它們都是供別人調用的介面函數。點擊WSDL打開WSDL描述頁面,此時復制該頁面的網址http://127.0.0.1/project2.dll/wsdl/IMain,這個網址是我們要用到的。
10、得到網址後,新建一個Application,我們就在這個Application中調用剛才的WebService。依次點擊New|Other|WebServices|WSDL Import,如後提示輸入網址,我們輸入剛才復制的網址,點擊next,finish,此時Delphi將自動添加一個單元,該單元就是調用WebService的單元,有了這個單元我們就可以調用WebService了。在Unit1中引用該單元,再添加一個按鈕,在按鈕的單擊事件中聲明一個介面對象,然後調用自動生成單元中的GetMainIntf(該方法是自動生成的)函數給這個介面對象賦值,然後就可以用這個介面對象調用介面函數了。
注意:如果前台使用THTTPRIO控制項來連接,
把http://127.0.0.1/project2.dll/wsdl/IMain賦給wsdlLocation屬性,而不是賦給URL屬性。這點和調用C#不一樣
Delphi調用JAVA寫的webservice
Java寫服務端的webservice
開發環境
MyEclipse 6.5 + jdk6.0 +tomcat 6.0 + axis2
具體的開發步驟不講,網上都有,只將碰到的幾個問題說下:
1、安裝axis2的插件,我使用時網上最新版本是1.6.1,下載下面兩個插件
Service Archive Wizard - Eclipse Plug-i
Code Generator Wizard - Eclipse Plug-i
安裝網上方法直接拷貝到plugins目錄,在MyEclipse中new---->other並沒有出現如下的界面
網上也沒有找到方法,後來找了下面的版本,就是
Axis2_Codegen_Wizard_1.3.0
Axis2_Service_Archiver_1.3.0
直接拷貝到plugins目錄下就可以;
分析:估計是MyEclipse版本中的Eclpise版本低了,裝不上高版本的1.6.1,反正低版本也好用;
2、在MyEclipse,開發的時候,如果用Axis2 Service Archiver生成服務的話,需要把項目屬性中的java Compiler--->Compiler compliance level:改為5.0,我的都是默認6.0;
要不然最後load不出class中的方法;
3、如需要一些jar文件,比如連接資料庫相關的jar,發布到tomcat中時候,需要把這些文件拷貝到webappsaxis2WEB-INFlib下;
4、使用Delphi 7調用axis2寫的webservice,導入wsdl的時候,沒有介面說明,可能是delphi的版本太低了,所以使用了delphi 2010導入生成了介面文件,然後用到了delphi 7中也可以;
5、設置THTTPRIO控制項的屬性,應把wsdl賦給URL屬性,和調c#一樣
建議用高版本的開發webservice,如2007,2010等,delphi 7有很多麻煩
4. 請問有關用DELPHI開發WEB應用程序的經驗、書和網站
三少靠上面的貼子掙了一少分了吧?
答:
WEB應用其實被DELPHI搞的簡單化了。
1)常規的應用結構變化不大的基礎上增加
2)增加一個WEB
應用層
(作用:定址
+
HTTP請求
及處理)
WEB
應用層
理解為WEB
中間層
可能會好些。
其一:負責通訊
其二:
XML格式
轉換
3)必備基本知識:
A)IIS(PWS)配置。(運行環境)
B)C/S結構編程,要是多層更好些。(基本)
C)看看VCL組件
XMLBORKER
+
INETPAGEPORDRUCE。(進階一)
D)DCOM/MTS方面的簡單知識。
(進階二)
E)HTML
+
XML
+
JS
最基本的ASP常識。(?偶也搞不清楚)。推薦資料:
李維
《……電子商務篇》
D5版。
D6
版我還沒看見。
說明:以上是D6結構說明,D5差不多,只是控制項在D6中被合並。用JBUILDER怎麼樣啊?
5. 請問Delphi6調用其他webservices介面問題
這個跟delphi的版有關,其實你只要運行良好就行,不必在意到底是procere、一個或兩個單元。
6. 如何在delphi中調用WebService
首先服務端應該有介面文檔地址,類似的http://ip:port/interfacename?wsdl。在delphi中使用import wsdl導入介面文檔,在介面文檔中會有一個GetqqXXXWebServiceSoap的全局方法,你需要傳入一個httprio對象,調用此方法就會返回一個介面對象,通過這個介面對象就可以調用webservice的方法。
7. 請問如何在delphi程序中向web程序提交數據
當然可以或許,這是DELPHI的一個重要功能。起首你要先建立Web
Server
Application應用,然後在HTML中指定該APPLICATION.
在Delphi法度榜樣頂用Request類獲得錄入的信息,然後用Response類將回應信息發到前端IE瀏覽器。
8. 如何用DELPHI實現和WEBSERVER伺服器端的CGI程序通訊
如不雅你用的是HTTP協定中的POST/GET,那麼根本不存在這些問題:
POST上去的滿是經由HTTP編碼的字元串!
在CGI法度榜樣上用HTTPDecode函數就可以把數據還原。如不雅是int,
本身用StrToIntDef()函數轉換吧。
BTW: 哪個網站要我下ActiveX控制項才能拜訪,我寧願不拜訪這個網站了。
清除用ActiveX的念頭吧。
9. 用Delphi開發出來的程序如何用web形式發布出來供人瀏覽操作
比較麻煩,要重新編譯DELPHI程序,按CGI的形式編譯成插件放在IIS下供調用,所以還要看你的DELPHI程序是否支持該種方式的重編譯,我估計99%是不行,因為用到的控制項不一樣。
10. 要用delphi做web開發,採用哪種方式比較好
Web 開發有多種應用形式,要看應用的平台(比如是電腦還是手機)。
以下提供用 delphi 開發 web 的一些方式:
一、使用 Indy 組件包里的 Internet 控制項
如果是開發網路應用(架構web伺服器等),可以使用 Indy 組件包里的 Internet 控制項。
二、使用 IntraWeb 組件
IntraWeb很像是普通的應用程序,唯一不同的是它的用戶界面是用瀏覽器代替了通常的Windows界面,當把應用程序安裝到Web伺服器上之後,用戶馬上就可以通過它的網路地址來開啟它,應用程序會馬上建立使用者的用戶信息,這樣就可以避免丟失用戶信息或者與其它的使用者發生使用混亂。
三、開發 Android / IOS 手機應用
此外,UniGUI 組件包改編 ExtJS 框架,提供了一整套的 web UI 元素。