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 。