当前位置: 代码迷 >> Web Service >> HttpWebRequest有关问题
  详细解决方案

HttpWebRequest有关问题

热度:206   发布时间:2016-05-02 03:00:55.0
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 。
  相关解决方案