读书人

HttpWebRequest有关问题

发布时间: 2012-01-05 22:36:54 作者: rapoo

HttpWebRequest问题
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Net;


/// <summary>
/// PostData 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class PostData : System.Web.Services.WebService
{
public PostData()
{}

[WebMethod]
public HttpWebResponse GetData(HttpWebRequest Req)
{
return (HttpWebResponse)Req.GetResponse() as HttpWebResponse;
}
}

上面是我webService的代码
发布成功后,添加引用和直接在IE运行它,提示如下错误:

System.Net.HttpWebRequest 无法序列化,因为它没有无参数的构造函数。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: System.Net.HttpWebRequest 无法序列化,因为它没有无参数的构造函数。

该怎么改呢?谢谢!


[解决办法]
加个构造函数就行了
[解决办法]
[WebMethod]
public HttpWebResponse GetData(string url)
{
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(url);

return (HttpWebResponse)Req.GetResponse() as HttpWebResponse;
}

试试
[解决办法]
[WebMethod]
public HttpWebResponse GetData(HttpWebRequest Req)
{
return (HttpWebResponse)Req.GetResponse() as HttpWebResponse;
}
===========
public HttpWebResponse GetData(HttpWebRequest Req)
{
return (HttpWebResponse)request.GetResponse();
}


[解决办法]
webservice的返回对象必须可以序列化为xml

另外你这个webservice毫无意义
[解决办法]
WebRequest request = WebRequest.Create(PageUrl);

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader=null;
try
{
reader = new StreamReader(dataStream, System.Text.Encoding.Default);
responseFromServer = reader.ReadToEnd();
..........
}
要不换成 WebRequest 。

读书人网 >Web Service

热点推荐