在Micro Framework中使用 Socket 调用Web Service

   最近做的Micro Framework 项目中一直有这么一个需求,就是要调用到服务器上的Web Service,而SDK中的所提供的Sample只包含如何调用设备上的Web Service

   既然要服务器上的Web Service,很容易就会想到看看PC上的程序是如何实现Web Service调用的?调用Web Service无疑就是ServerClient间的数据传递,而要检测这个过程,一般就会想到使用到抓包工具,而更加直接的则是使用HttpWatch

   首先我在本地建了一个Web Service程序,该程序包含一个方法:

[WebMethod]
 
public int add(int a, int b)
{
       
return a + b;
}

点击调式该程序,

 

点击Invoke按钮后,开始使用Httpwatch开始录制传送的数据(录制时可能需要重新刷新该页面)

 

左侧数据为客户端发送数据,右侧为服务器返回数据,其内容如下:

发送的数据:

 

Code

 

返回的数据:

Code

按照设定的想法将左侧的数据使用Socket发送到服务器端,并接受来自服务器端的数据。

 

Code

  果然会返回预期的结果,接下来就可以将接收到的数据读进XmlReader中进行解析了。

  根据对返回数据的分析,我们需要读到Content-Length(实际内容长度),即可将真实内容传到XmlReader方法如下:

 

Code

 

有了如上的整个实现过程,我们很容易看出只要对发送数据的

POST /Service1.asmx/add HTTP/1.1

Referer: http://localhost:51580/Service1.asmx?op=add

Host: localhost:51580

Content-Length: 7

以及内容进行修改,即可调用不同的方法。

 

 

posted on 2009-06-08 18:31  Happy Miao  阅读(575)  评论(0编辑  收藏  举报