Web Service
2021-04-08 23:28
标签:函数 null rect put 返回值 read aik 博客 -- 摘自百度: Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。 由终端程序调用web服务 调用web服务,首先需要一个请求的地址 string serviceUrl = ConfigurationManager.AppSettings["insertTrainMeasure"].ToString().Replace(‘$‘, ‘&‘); ConfigurationManager.AppSettings[]是读取程序中app.config文件的方法,括号中填入Key,获取相应的value; 如: 有了请求路径,就可以使用system.Net中的帮助类调用web服务了。 这个方法最后返回一个HttpWebRequsst类型的对象。 这个对象可以调用GetResponse();方法获取一个WebReponse类型的响应对象。 然后既可以通过GetResponseStream()获取用于读取数据的流对象,通过流读取服务返回的内容 最后返回的string类型对象,就是服务返回的内容。 ----------------------------------------------------------------------------------- Post方式与Get方式相差不多 POST方法返回与Get方法相同的HttpWebRequest,解读相应对象可以用上边Get相同的方法, 也可使用异步方法: ============================================================== HttpWebRequest request.BeginGetResponse(new AsyncCallback(saveWeightCallback), request); BeginGetResponse()中需要两个参数,第一个是委托AsyncCallback类型的回调函数。第二个参数是object类型。 ==================================================================================================== 代码摘自某大哥的一篇博客,但是找不到了,以后找到了补上 创建一个web服务 使用HttpListener对象 Web Service 标签:函数 null rect put 返回值 read aik 博客 -- 原文地址:https://www.cnblogs.com/big-lll/p/12452002.html ///
public static string ResponseSynStr(HttpWebRequest req)
{
string result = string.Empty;
WebResponse response = req.GetResponse();
try
{
Encoding encoding = Encoding.GetEncoding("UTF-8");
using (StreamReader streamReader = new StreamReader(response.GetResponseStream(), encoding))
{
result = streamReader.ReadToEnd();
streamReader.Dispose();
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
response.Close();
}
return result;
}
///
////回调函数,有个IAsyncResult
(待处理的响应请求。)
类型的参数
private void saveWeightCallback(IAsyncResult asyc)
{
try
{
string strResult = ComHelpClass.ResponseStr(asyc); //调用解析方法,见下方
Dictionarystring, object> dic = JsonHelpClass.DeserializeStringToDictionarystring, object>(strResult);//将返回值转变成字典类型
if (bool.Parse(dic["success"].ToString()))
{
System.Windows.Forms.MessageBox.Show("保存成功");
}
else
{
System.Windows.Forms.MessageBox.Show("保存失败");
}
}
catch (Exception ex)
{
}
}
////解析方法
public static string ResponseStr(IAsyncResult asyc)
{
string result = string.Empty;
HttpWebRequest httpWebRequest = (HttpWebRequest)asyc.AsyncState; //将回调函数传递进来的方法转换为HttpWebRequest对象
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.EndGetResponse(asyc);//结束对Internet资源的异步请求。返回一个WebResponse,其中包含Internet资源的响应。
try
{
Encoding encoding = Encoding.GetEncoding("UTF-8");
using (StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), encoding))
{
result = streamReader.ReadToEnd();
streamReader.Dispose();
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
httpWebResponse.Close();
}
return result;
}
///
///
///