POST http://www.baixing.com/api/mobile/user.login/ HTTP/1.1
BAPI-USER-TOKEN:
udid: 382b07c277a4dcb8
APP-VERSION: 7.5.0
BAPI-APP-KEY: api_androidbaixing
BAPI-NONCE: 382b07c277a4dcb8
BAPI-HASH: 31713c34ace51df794b39e288ba87707
User-Agent: com.quanleimu.activity/7.5.0;OPPO;OPPO;OPPO+A53;5.1.1;720x1200;
Content-Type: application/json; charset=utf-8
Content-Length: 62
Host: www.baixing.com
Connection: Keep-Alive
Accept-Encoding: gzip
{"password":"347723","type":"mobile","identity":"18312854037"}
上面是我抓包百姓网安卓app的请求头
[mw_shl_code=csharp,true] items.Header.Add("APP - VERSION", "7.5.0");
items.Header.Add("BAPI - APP - KEY", "api_androidbaixing");
items.Header.Add("BAPI - NONCE", "382b07c277a4dcb8");
items.Header.Add("BAPI - HASH", "31713c34ace51df794b39e288ba87707");[/mw_shl_code]
我写的上面这片代码提示我
“System.ArgumentException”类型的未经处理的异常在 System.dll 中发生
其他信息: 指定的值含有无效的 HTTP 标头字符。
PS:用苏飞论坛的HttpHelper不会有这个提示,但是 请求的结果也有问题;
用HttpCode 把上面出错的header.add代码去掉之后返回的数据是
{"error":2002,"message":"","ext":null}
这和我使用HttpHepler得到的返回值是一样的,都不对;
使用fiddler code自己生成的代码是可以正常请求的
下面是fiddler生成的代码[mw_shl_code=csharp,true]private void MakeRequests()
{
HttpWebResponse response;
if (Request_www_baixing_com(out response))
{
response.Close();
}
}
private bool Request_www_baixing_com(out HttpWebResponse response)
{
response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baixing.com/api/mobile/user.login/");
request.Headers.Add("BAPI-USER-TOKEN", @"");
request.Headers.Add("udid", @"382b07c277a4dcb8");
request.Headers.Add("APP-VERSION", @"7.5.0");
request.Headers.Add("BAPI-APP-KEY", @"api_androidbaixing");
request.Headers.Add("BAPI-NONCE", @"382b07c277a4dcb8");
request.Headers.Add("BAPI-HASH", @"31713c34ace51df794b39e288ba87707");
request.UserAgent = "com.quanleimu.activity/7.5.0;OPPO;OPPO;OPPO+A53;5.1.1;720x1200;";
request.ContentType = "application/json; charset=utf-8";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip");
request.Method = "OST";
request.ServicePoint.Expect100Continue = false;
string body = @"{""password"":""347723"",""type"":""mobile"",""identity"":""18312854037""}";
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
request.ContentLength = postBytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(postBytes, 0, postBytes.Length);
stream.Close();
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return false;
}
catch (Exception)
{
if(response != null) response.Close();
return false;
}
return true;
}[/mw_shl_code]
希望君临老大解决下,我在另一个论坛问过苏飞老大,但是他没有给出回复,也可能是我问的有问题
真心希望使用君临老大的httpcode,因为有玄机宝盒这样的好工具可以大量节约时间,嘿嘿!!! |