【问题标题】:JSON post from c# fails with 500 error来自 c# 的 JSON 发布失败,出现 500 错误
【发布时间】:2015-02-07 13:27:34
【问题描述】:

我有一个 c# winforms 应用程序,我试图在其中调用我控制代码的 Web 服务(在两端)。我知道 Web 服务很好,因为我可以毫无问题地从 jquery 调用它并返回有效的 json。但是当我从 c# 调用它时,我得到这个错误:“远程服务器返回一个错误:(500)内部服务器错误。”在调试器中,我无法收集到更多细节。

这是我的 c# 调用者代码:

private string GetMemberCheckInData() {
    string response = string.Empty;
    string fullURL = RootServiceURL + "MemberCheckIn";
    var httpWebRequest = (HttpWebRequest) WebRequest.Create(fullURL);
    httpWebRequest.ContentType = "text/json";
    httpWebRequest.Method = "POST";

    using(var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) {
        string json = "{\"scanCode\":\"" + APIKey + "\"," +
            "\"siteID\":\"2\"," +
            "\"revenueGroupID\":\"0\"," +
            "\"employeeID\":\"12345\"}";;

        streamWriter.Write(json);
        streamWriter.Flush();
        streamWriter.Close();

        var httpResponse = (HttpWebResponse) httpWebRequest.GetResponse();

        using(var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
            response = streamReader.ReadToEnd();
        }
    }

    return response;
}

这是正在发送的文字 JSON:

{"scanCode":"***8G9V3MA39H0N****","siteID":"2","revenueGroupID":"0","employeeID":"12345"}

这是 c# web 服务代码(从 jquery 调用时可以正常工作):

[WebMethod]
public void MemberCheckIn(string scanCode, int siteID, int revenueGroupID, int employeeID)
{
   ...code is never reached...
}

Web 服务功能从未真正进入;我用调试器确认了这一点。当我从 jquery 调用它时,我可以直接调试它。因此,.net 运行时或 IIS 或其他东西似乎拒绝了该请求。

任何想法我做错了什么?

【问题讨论】:

    标签: c# jquery asp.net web-services


    【解决方案1】:

    您的网络方法希望您将参数传递给它。

    string fullURL = RootServiceUrl + "MemberCheckIn?scanCode=X&siteID=1...etc.
    

    【讨论】:

    • 我刚刚尝试过,但得到了同样的 500 错误。而且我也想知道streamWriter.Write(json),它显然应该只是发送一个空字符串?我尝试发送一个空字符串,并尝试完全删除该行。所有相同的结果,500 错误。
    • 检查您的完整 URL 路径。由于我看不到 RootServiceUrl,因此您的路径可能有问题。
    • 我放弃了 json 的东西并做了一个更传统的帖子,它奏效了。但你是对的,简单的 NVP 工作正常。
    猜你喜欢
    • 1970-01-01
    • 2022-08-04
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2014-09-26
    相关资源
    最近更新 更多