c# - C# - 如果出现错误 400,我如何获得 JSON 响应?(HttpRequest)
问题描述
有时我会收到错误代码 400,例如当我尝试使用错误密码登录时。在其他 API(python)上它返回状态代码,那么我怎样才能从服务器获得实际响应?
编辑:我的代码:headers.cs:
public string Postheaders(string url, string data, string deviceID, string deviceID_sig, string userAgent)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Headers["NDCDEVICEID"] = deviceID;
request.Headers["NDC-MSG-SIG"] = deviceID_sig;
request.Headers["Accept-Language"] = "en-US";
request.UserAgent = userAgent;
request.Host = "service.narvii.com";
request.ContentType = "application/json; charset=utf-8";
request.ContentLength = data.Length;
var requestStream = request.GetRequestStream();
using (var streamWriter = new StreamWriter(requestStream))
{
streamWriter.Write(data);
}
var webResponse = (HttpWebResponse)request.GetResponse();
var webStream = webResponse.GetResponseStream();
var responseReader = new StreamReader(webStream);
var response = responseReader.ReadToEnd();
return response;
}
客户端.cs
public string Login(string email, string password)
{
var deviceinfo = new device();
var headers = new headers();
string data = new JavaScriptSerializer().Serialize(new
{
email = email,
v = 2,
secret = string.Format("0 {0}", password),
deviceID = deviceinfo.deviceID,
clientType = 100,
action = "normal",
timestamp = (long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000
});
string response = headers.Postheaders(string.Format("{0}/g/s/auth/login", api), data, deviceinfo.deviceID, deviceinfo.deviceID_sig, deviceinfo.userAgent);
return response;
}
解决方案
尝试这个,
JObject o1 = JObject.Parse(@"{
'status': 0, 'code':400, 'message':'bad request'
}");
JObject o2 = JObject.Parse(jobject);
o1.Merge(o2, new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Concat });
return Request.CreateResponse(o1);
推荐阅读
- angular - 如何使用 Angular 拦截器和管道来获取需要基本身份验证标头的图像的 http 获取请求
- elasticsearch - TFIDF 得分百分比
- python - 如何将字典列表与字典进行比较?
- c# - 使用 sql server 实现服务冗余
- python - 请帮我将 C++ 算法代码转换为 Python
- c# - 有没有办法在 asp.net json 文件的字符串中使用环境变量?
- jquery - 二维码图片下载后不显示
- node.js - 如何在 MongoDB 和 NodeJS 中聚合平均值
- hyperledger-fabric - 在 Hyperledger 结构中启用基于 Raft 的排序器是否需要 TLS
- html - HTML 输入复选框无法删除勾选