宇文雅昕 2015-12-24 01:52 采纳率: 0%
浏览 2018

C#模拟登录中国联通获取用户通话详单

我写一个根据手机号码和服务密码自动登录中国联通官网 然后获取通话详单json的类,第一步模拟登录返回的数据没有问题 但是第二步获取通话详单的时候总是报500错误 有人知道解决方法吗?
public static string GetCalldetails(string userName, string password)
{
string content="";
CookieContainer cookie = new CookieContainer();
string postUrl = "https://uac.10010.com/portal/Service/MallLogin?callback=jQuery17202691898950318097_1403425938090&redirectURL=http://www.10010.com&userName="+userName+"&password="+password+"&pwdType=01&productType=01&redirectType=01&rememberMe=1";

          HttpWebRequest httpRequset = (HttpWebRequest)WebRequest.Create(postUrl);
          httpRequset.CookieContainer = cookie;//设置cookie
          httpRequset.Method = "GET";
          httpRequset.ContentType = "text/html;charset=UTF-8";

          HttpWebResponse httpresponse = (HttpWebResponse)httpRequset.GetResponse();
          Stream myResponseStream = httpresponse.GetResponseStream();
          StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
          string retString = myStreamReader.ReadToEnd();
          myStreamReader.Close();
          myResponseStream.Close();
          if (Convert.ToInt32(httpresponse.StatusCode) == 200)
          {
              if (retString.Contains("resultCode:\"0000\""))
              {
                  string billurl = "http://iservice.10010.com/e3/static/query/callDetail?_=1450840337718&menuid=000100030001";
                  string strdata = "pageNo=1&pageSize=100&beginDate=2015-12-01&endDate=2015-12-23";
                  byte[] byteArray = Encoding.UTF8.GetBytes(strdata); 
                  //string billurl = "http://iservice.10010.com/e3/static/check/checklogin/?_=1450857473494";
                 // HttpWebRequest Requset = (HttpWebRequest)WebRequest.Create(billurl);
                  HttpWebRequest Requset = (HttpWebRequest)WebRequest.Create(billurl);
                  Requset.Method = "POST";
                  Requset.CookieContainer = cookie;
                  Requset.ContentType = "application/x-www-form-urlencoded";
                  Stream stream = Requset.GetRequestStream();
                  using (StreamWriter myStreamWriter = new StreamWriter(stream, Encoding.GetEncoding("UTF-8")))
                  {
                      myStreamWriter.Write(byteArray);
                  }

                  HttpWebResponse response = (HttpWebResponse)Requset.GetResponse();
                  //if (Convert.ToInt32(response.StatusCode) == 200)
                  //{
                  using (Stream responsestream = response.GetResponseStream())
                  {

                      using (StreamReader sr = new StreamReader(responsestream, Encoding.GetEncoding("utf-8")))
                      {
                          content = sr.ReadToEnd();
                          //return content;
                      }
                  }
                  return content;
              }
              else
              {

                  return "登录失败:" + retString + "";
              }
          }
          else
          {
              int num = Convert.ToInt32(httpresponse.StatusCode);
              return "数据传输失败:" + num+"";
          }
         }
  • 写回答

1条回答 默认 最新

  • threenewbee 2016-02-06 21:58
    关注

    500错误是服务器造成的,用fiddler调试下,看你的提交和浏览器的有什么不同以及服务器返回什么

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?