【问题标题】:Json: the remote server returned an error (500) internal server errorJson:远程服务器返回错误(500)内部服务器错误
【发布时间】:2014-01-26 22:50:53
【问题描述】:

我正在尝试读取 Json 格式的 Web 服务

这是我的代码:

WebClient wc = new WebClient();
        wc.UseDefaultCredentials = true;
        var data = wc.DownloadString(JsonUri);
        MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(data));
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<PaymentMethod>));
        var result = serializer.ReadObject(ms);
        ms.Close();
        ms.Dispose();

我在这一行得到一个错误:

var data = wc.DownloadString(JsonUri);

JsonUri 是:http://avaris.kwekud.com/api/v1/items/uniqueitem/?username=joel&api_key=959dd41efd06b84ca7f10b1b12f5f3e6567c07dc&format=json

任何帮助

谢谢

【问题讨论】:

  • 什么情况下会出现500错误?显然不是响应一个简单的查询(至少现在不是;服务器完全有可能不堪重负)。
  • @T.J.Crowder 当我尝试添加下面的链接时,我收到了输出格式的响应。
  • @Djama:他们可能会阻止/限制您的 IP 或类似的,可能是因为您反复发出无效请求。当我尝试它时,我得到了这个:pastie.org/8670231"error_message": "'NoneType' object has no attribute 'workspace'" 打开...
  • @T.J.Crowder:你用我下面提供的链接试过了吗?
  • @Djama:“下面”在哪里?显然,在您的问题中,我使用了上面的那个。

标签: json winforms web-services


【解决方案1】:

返回 API 的服务器上的 Python 代码似乎存在问题。一个好主意是尝试从您的代码外部进行调用,以确保它不是您的代码。任何数据包嗅探工具(例如 firefox 中的 firebug)都能够告诉您调用是否出错,因为您的代码格式不正确。

看起来 API 当前已损坏,因此您应该在其中放置一个 try ... catch 并处理以下情况的异常:

【讨论】: