[WebMethod]
public string getUserName()
{
String userName ="";
HttpWebRequest userRequest = (HttpWebRequest)WebRequest.Create("http://localhost:82/getusername.aspx");
userRequest.Timeout = 20000;
HttpWebResponse userRespose = (HttpWebResponse)userRequest.GetResponse();
if(userRespose.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = userRespose.GetResponseStream();
StreamReader readStream = new StreamReader( receiveStream,System.Text.Encoding.Default);
userName = readStream.ReadToEnd(); userRespose.Close(); readStream.Close(); }
return userName;
}直接在浏览器中http://localhost:82/getusername.aspx访问有输出值,但是在上面的程序中就得不到username
是什么原因

解决方案 »

  1.   

    将网站先在IIS上发布,然后再调用试试看....
      

  2.   

    给你一个函数
    private string GetContentFromUrll(string _requestUrl)
    {
    string _StrResponse ="";
    HttpWebRequest _WebRequest = ( HttpWebRequest )WebRequest.Create( _requestUrl );
    _WebRequest.Method = "GET";
    WebResponse _WebResponse = _WebRequest.GetResponse();
    StreamReader _ResponseStream = new StreamReader( _WebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
    _StrResponse = _ResponseStream.ReadToEnd();
    _WebResponse.Close(); 
    _ResponseStream.Close();
    return _StrResponse;
    }
      

  3.   

    感觉没有什么问题...觉得问题可能就出在句了..("http://localhost:82/getusername.aspx");
      

  4.   

    你说你已经在IIS上发布了,那怎么还会出现URL中含有端口的情况...我记得发布后,一般就不会再出现类似"..localhost:82.."这样的情况吧..for example:"http://localhost/WebSiteTest/main.aspx"
      

  5.   

    对asp.net不太熟,以上均为自己猜测,有不当之外勿怪..仅供参考..
      

  6.   

    楼主可以一步步地分析:
    1.首先在Server端设置断点,看看是否接受到了请求;
    2.再客户端设置断点,看请求是否正常得到了反馈;
    3.实在没有办法的话,考虑两边字符的编码问题。其实我怀疑你的Server端就没有正常收到请求。
      

  7.   

    我在http://localhost:82/getusername.aspx中读取cookie,单独在浏览器中运行时没有问题,但是用httpRequest 类调用就得不到cookie值,大侠们能给讲解一下吗
      

  8.   

    端口是可能出现的啊,他没有用默认端口,所以要加端口号。
    我不知道你是不是在线程中做的,比如你在线程中改变了一个TextBox的.text值,在前端页面不会显示出来的。