C# HTTPPOST用JavaScript响应

C# HTTPPOST用JavaScript响应,c#,http-post,C#,Http Post,我已经尝试了一些不同的方法来写这篇http文章,它总是用这篇文章底部的脚本来响应。我还用VBA编写了一些代码,这些代码发布到同一个URL,并且它会按照应该的方式响应。我的一个同事认为VBA代码可以工作,因为它使用的是启用JS的IE引擎。在C语言中,我还需要做些什么来让它工作吗 private static string TransformCmodReport(string ReportPath, string ModelPath) { var request = (HttpWebRequ

我已经尝试了一些不同的方法来写这篇http文章,它总是用这篇文章底部的脚本来响应。我还用VBA编写了一些代码,这些代码发布到同一个URL,并且它会按照应该的方式响应。我的一个同事认为VBA代码可以工作,因为它使用的是启用JS的IE引擎。在C语言中,我还需要做些什么来让它工作吗

private static string TransformCmodReport(string ReportPath, string ModelPath)
{
    var request = (HttpWebRequest)WebRequest.Create("http://usflcmd1:80/RMSClient/RequestTypeAnalyze/AnalyzeRequest");

    string postData = "REQUEST_TYPE=E" +
        "&REPORT_HOST=usflcmd1" +
        "&REPORT_PATH=" + ReportPath +
        "&MODEL_PATHS=" + ModelPath +
        "&DEFAULT_VIEW=XLS_TABLE" +
        "&EXPORTTO=CSV";
    var data = Encoding.ASCII.GetBytes(postData);

    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.AllowAutoRedirect = true;
    request.UseDefaultCredentials = true;
    request.ContentLength = data.Length;

    using (var stream = request.GetRequestStream())
    {
        stream.Write(data, 0, data.Length);
    }

    var response = (HttpWebResponse)request.GetResponse();

    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

    return responseString;
}
回应

窗口位置= “/RMSClient/Login/LoginIndex?返回URL=%2rmsclient%2exportmode%2FTryExport%3FappId%3D1abfc958-2694-42b9-a006-49ca5b786e44” 编辑:下面是正在工作的VBA代码

Public Function GetReportData(ReportPath As String, ModelPath As String) As String
    Dim strRequest As String
    Dim http As New MSXML2.ServerXMLHTTP60

    strRequest = "REQUEST_TYPE=E" & _
                 "&REPORT_HOST=usflcmd1" & _
                 "&REPORT_PATH=" & ReportPath & _
                 "&MODEL_PATHS=" & ModelPath & _
                 "&DEFAULT_VIEW=XLS_TABLE" & _
                 "&EXPORTTO=CSV"

    'Open the connection
    http.Open "POST", "http://usflcmd1:80/RMSClient/RequestTypeAnalyze/AnalyzeRequest", False


    http.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    http.setRequestHeader "Content-type", "application/x-www-form-urlencoded"

    'Send the payload
    http.send CStr(strRequest)

    'Get the response/error
    GetReportData = http.responseText

End Function

返回的JS告诉客户端它需要重定向到登录屏幕。如果这出现在浏览器中,它将自动重定向。您可能需要首先向LoginIndex请求/发布数据用户名/密码,然后使用为您的请求返回的cookies和标题,返回到另一个页面,这听起来就像我的同事建议的那样。我要试一试。谢谢