當前位置:首頁 » 網頁前端 » winform調用webapi
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

winform調用webapi

發布時間: 2022-09-18 11:05:53

❶ 在winform里怎麼調用WebBrowser控制項里的腳本

在winform里怎麼調用WebBrowser控制項里的腳本
這是在CSDN論壇上的一個問題,感覺也許對其他人也會有點用處,所以貼出來
JScript是建立在COM之上的,設置變數/調用函數是通過IDispatch來實現的。在.NET里,調用IDispatch里的方法是通過反射來實現的,即,通過System.Type.InvokeMember 。該方法調用 IDispatch::GetIDsOfNames 以及IDispatch::Invoke來調用COM Automation 對象里的方法和屬性。參考Binding for Office automation servers with Visual C# .NET
假如有下列HTML:
<mce:script language="JavaScript"><!--
var var1 = 'yes';
function testx(obj)
{
alert(obj);
alert(var1);
}
// --></mce:script>
<input type=button value="click me" onclick="testx('hello');">
在C#里,假設axWebBrowser1是你的WebBrowser控制項對象,你已經裝載了上述HTML,你可以這么做:
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)axWebBrowser1.Document;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
//讀變數值
object o = win.GetType().InvokeMember ("var1", BindingFlags.GetProperty, null, win, new Object [] {});
//寫變數值
win.GetType().InvokeMember ("var1", BindingFlags.SetProperty, null, win, new Object [] {"新的值"});
//調用方法
win.GetType().InvokeMember("testx",BindingFlags.InvokeMethod,null,win,new object[]{1});
比較麻煩,對么?幸運的是,我們不用這么麻煩,因為IHTMLWindow2里有個現成方法,execScript,我們可以這么做:
win.execScript("var1 = 'abc';","javascript");
win.execScript("testx(12)","javascript");

❷ winform 怎麼新建webapi

個人建議WCF和WebAPI都要學,WebAPI僅限http協議,如果要追求高性能而使用tcp協議那就得上WCF,一個功能全面、API多樣,一個輕巧,如果只是用於ajax後端那肯定是WebAPI了,如果是用於更復雜多變的環境還是WCF強。

❸ 想問一下Winform和WebApi搭配著好用么

個人建議WCF和WebAPI都要學,WebAPI僅限http協議,如果要追求高性能而使用tcp協議那就得上WCF,一個功能全面、API多樣,一個輕巧,如果只是用於ajax後端那肯定是WebAPI了,如果是用於更復雜多變的環境還是WCF強。

❹ 想問一下Winform和WebApi搭配著好用么

winform主要用於cs環境下,主要是在UI上。 後台數據交互功能可以使用restful api來實現。你說的web api其實就是基於restful的。

❺ 想問一下Winform和WebApi搭配著好用么

在新出的MVC中,增加了WebAPI,用於提供REST風格的WebService,新生成的WebAPI項目和典型的MVC項目一樣,包含主要的Models、Views、Controllers等文件夾和Global.asax文件。Views對於WebAPI來說沒有太大的用途

❻ webapi怎麼調用winform(CS)中的方法(cs是服務端必須先獨立啟動)

有解決方案:建立CS程序與WebApi伺服器的點對點連接(通過Tcp/ip),然後WebApi發起請求,CS程序返回請求結果。
詳細一點:CS端開啟tcp.ip的監聽埠,webapi伺服器連接這個埠,需要掌握網路編程技能。網路搜索C# 網路編程相關的源碼。
若CS端沒有開啟外網IP,還需要穿透NAT(類似QQ聊天,網路編程高級篇),這里有文章參考一下: C#實現UDP穿透NAT(UDP打洞)完整版(原)
www.csframework.com/archive/2/arc-2-20110713-1693.htm

❼ c#winform怎麼調用webservice

建議這樣試試看:

親測可用,主要還是Url的拼接,這個需要客戶給出格式

  1. /// <summary>

  2. /// 與客戶WMS系統通訊獲取數據

  3. /// </summary>

  4. /// <param name="url">介面,需要拼接成客戶規定的格式</param>

  5. /// <param name="data">請求數據,需要拼接成客戶規定的Json格式</param>

  6. /// <returns>全部數據</returns>

  7. public string Post(string url, string data)

  8. {

  9. try

  10. {

  11. //創建請求

  12. HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

  13. //設置請求方法

  14. request.Method = "Post";

  15. request.Referer = "";

  16. //將數據轉換為UTF8位元組流

  17. byte[] bytes = Encoding.UTF8.GetBytes(data);

  18. //設置發送的位元組數

  19. request.ContentLength = bytes.Length;

  20. //設置發送內容格式

  21. request.ContentType = "application/json; charset=UTF-8";

  22. //獲取用於寫入請求數據的流對象

  23. Stream stream = request.GetRequestStream();

  24. //向當前流寫入數據,發送請求

  25. stream.Write(bytes, 0, bytes.Length);

  26. //接收返迴流,通過Web訪問對象獲取響應內容

  27. HttpWebResponse response = (HttpWebResponse)request.GetResponse();

  28. //通過響應內容流創建StreamReader對象

  29. //StreamReader sr = new StreamReader(request.GetRequestStream(), Encoding.UTF8);//寫錯,導致一直讀取不了數據

  30. StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

  31. //讀取所有內容

  32. string retString = sr.ReadToEnd();

  33. //關閉流

  34. sr.Close();

  35. stream.Close();

  36. if (response != null)

  37. {

  38. //關閉響應流

  39. response.Close();

  40. }

  41. if (request != null)

  42. {

  43. //取消請求

  44. request.Abort();

  45. }

  46. return retString;

  47. }

  48. catch (Exception ex)

  49. {

  50. throw ex;

  51. }

  52. }

  53. }

❽ 如何用winform調用webservice的數據並顯示

添加web引用時,會要求給此引用取名,一般 這個會被我們忘記,不過他有默認的名字 是 WebReference
然後這樣寫 WebReference.你的webservice的名字 w=new WebReference.你的webservice名字();
要是不行的話,你就重新添加web引用,記住引用的名字(假設為a)
然後 a.你的webservice的名字 w=new a.你的webservice名字();

❾ 如何創建,發布Web Service和 C#WINFORM里如何調用WEB Service API

一、創建和發布Web
Service
Web服務方法中可以返回一個DataSet對象

WEB服務可以說是下一代WEB應用程序的基礎,無論客戶端是WINDOWS應用、ASP.NET Web
Form程序、甚至其他語言的客戶端,都可以與同一個WEB服務通信,其平台和語言無關性使其有了廣闊的發展空間。

利用VS2005和IIS我們可以很容易地發布一個WEB
SERVICE,因為其中有幾個細節需要注意,所在初學者常常在這里出現問題,現通過一個簡單的例子說明如何創建和發布一個WEB SERVICE。

環境:Windows Server 2003,.Net FrameWork 2.0,IIS6.0

工具:VS2005

1.首先VS2005中新建一個WEB服務項目。

打開「文件」-「新建」-「網站」,在對話框中選擇「ASP.NET Web服務」,VS2005會自動生成一個Service.cs文件,包含如下代碼:

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service
:
System.Web.Services.WebService
{
public Service
()
{

//如果使用設計的組件,請取消注釋以下行
//InitializeComponent();

}

[WebMethod]
public string HelloWorld()
{
return "Hello
World";

}

}

你可以在這里修改自己的命名空間,加入自己的方法,但本文只是為了說明如何創建和發布,所以對Service.cs不做任何更改。

2.生成網站

很簡單,「生成」-「生成網站」或直接Shift+F6

3.發布網站

也是簡單,「生成」-「發布網站」,這里會彈出一個對話框,什麼也不需要修改,記下發布的目錄。比如:D:/我的文檔/Visual Studio
2005/Projects/WebSite1/PrecompiledWeb/WebSite1,我們需要目錄下的文件。

4.配置IIS

在你的WEB目錄下一個文件夾,比如webservice,並將第3步發布目錄中的所有文件和目錄拷貝到這個目錄中,打開IIS,找到你的站點,在這個webservice目錄上點右鍵,選擇屬性,在彈出對話框的「目錄」選擇項卡中點擊「創建」按鈕,然後確定即可。

到這時,已經大功告成,你可以通過訪問http://域名/webservice/Service.asmx來驗證。頁面會出現如下圖所示內容:

注意:除了需要在IIS中對服務目錄創建程序外,還要注意防火牆或殺毒軟體的設置,我在首次訪問service.asmx文件時,殺毒軟體報告w3wp.exe在系統文件夾中生成asp_code.dll等,應該允許其他創建,否則會無法訪問。

通過這樣簡單的方法,你可以輕松建立自己的WEB服務,在同一站點還可以有多個WEB服務。
二、c#的winform中調用Web Service
API(VB6.0也可以調用該web服務)
現在以C# WinForm為例談談如何使用它
,在服務中我們只有一個自動生成的方法:HelloWord(),其實現如下:

[WebMethod]

public string HelloWorld(){

return "Hello
World";

}

在WINFORM中我們將添加一個按鈕,添加單擊事件,在事件處理函數中彈出一個對話框顯示HelloWord的結果。

1.添加WEB引用

在VS2005中新建一個Windows應用程序項目,取名testwebservice,在項目中添加一個WEB引用,可在「解決方案資源管理器」的項目名上點右鍵添加,在彈出對話框中的URL輸入框中輸入WEB伺服器的路徑:如http://你的域名/web服務務路徑/service.asmx,點擊「前行」按鈕後會搜索這個服務,並在右邊報告找到的服務,並在左邊顯示service.asmx頁面,我們在WEB引用名輸入框中輸入一個名字,這個將做為程序中WEB服務的命名空間名,這里我們取名mywebservice。

2.添加按鈕單擊事件

在Form中拖出一個Button按鈕,雙擊單擊事件處理方法,代碼如下:

private void button1_Click(object sender,
EventArgs e)
{
mywebservice.Service
ws = new testwebservice.mywebservice.Service();

MessageBox.Show (ws.HelloWorld());
}

其中mywebservice.Service ws = new
testwebservice.mywebservice.Service()是實例化一個WEB服務對象,ws.HelloWorld()是調用WEB服務中的這個HelloWorld方法,其返回字元串將用MessageBox.Show()函數顯示出來。

好了,最簡單的一個調用WEB服務API的WinForm例子已經完成了,編譯運行,單擊按鈕,將會彈出對話框顯示「Hello World」信息。

重要的一點,在.net的WEB服務API中,除了一般的數據類型外,還可以返回結構和DataSet對象,有了這一點,就可以構建我們大多數的資料庫應用了。

好了,接下來的工作就是在WEB服務中添加你的API完成你的工作了。

轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦