当前位置:首页 » 网页前端 » 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完成你的工作了。

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦