在另一个网站中输入数据,并使用 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.

在另一个网站中输入数据,并使用 C# 获取响应

尝试从postData值中删除"Request="