我写一个根据手机号码和服务密码自动登录中国联通官网 然后获取通话详单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+"";
}
}