在另一个网站中输入数据,并使用 C# 获取响应
本文关键字:获取 响应 网站 另一个 输入 数据 | 更新日期: 2023-09-27 18:32:28
我想将数据发布到 http://irsherkat.ssaa.ir/Design/SearchCompanyPublicInfo.aspx,例如 #txtNationalCode 输入的值为10861677542。当我使用 Fiddler 向 http://irsherkat.ssaa.ir/hndlr/GeneralHandler.ashx?Id=33(发布的数据发送到哪个)发布请求时,使用此请求标头:
Content-Type: application/x-www-form-urlencoded
和此请求正文:
Request={'ClassTypeName':'TRM.hndlr.Classes.CompanyPublicInfoController','MethodName':'SearchData','DataParamType':'TRM.hndlr.TRMTypeDefinition.CompanyPublicInfo.CompanyPublicInfoSerchParam','MainEntityType':'','DataParam':'{''Nationalcode'':''10861677542'',''Registernumber'':'''',''UnitId'':null,''CompanyTypeId'':''0''}'}
我得到了 200 个成功结果,但是当我想用这个 C# 代码做到这一点时:
public async Task<string> Get()
{
var request = (HttpWebRequest)WebRequest.Create("http://irsherkat.ssaa.ir/hndlr/GeneralHandler.ashx?Id=33");
var postData = "Request={'ClassTypeName':'TRM.hndlr.Classes.CompanyPublicInfoController','MethodName':'SearchData','DataParamType':'TRM.hndlr.TRMTypeDefinition.CompanyPublicInfo.CompanyPublicInfoSerchParam','MainEntityType':'','DataParam':'{''Nationalcode'':''10861677542'',''Registernumber'':'''',''UnitId'':null,''CompanyTypeId'':''0''}'}";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
return new StreamReader(response.GetResponseStream()).ReadToEnd();
}
它给了我这个错误:
The remote server returned an error: (500) Internal Server Error.
尝试从postData
值中删除"Request="
。