【发布时间】:2016-05-18 21:58:02
【问题描述】:
我正在使用休息服务来取回一些 json 数据。作为测试工具,他们给了我一个 url,如果我在浏览器中访问该 url,我有一个表单,我可以将一些 json 放在 textarea 中,然后提交表单,我在页面重新加载时得到 json 结果.
我现在尝试通过在 C# 中使用 RestSharp 以编程方式复制此内容,但我遇到了一个问题,即调用的结果是我要访问的页面的 html(而不是 json 结果)
这是我的代码:
var client = new RestClient {BaseUrl = new Uri("http://myhost.com:22333") };
var request = new RestRequest { Method = Method.POST, Resource = "/site/api", RequestFormat = DataFormat.Json };
request.AddBody(new
{
fieldtype = "name", value = "joe"
});
request.AddHeader("accept", "application/json");
client.Authenticator = new NtlmAuthenticator();
var response = client.Execute(request);
var jsonDto = new JsonDeserializer().Deserialize<ResultObj>(response);
如果我在调试器中查看 response.Content(在任何反序列化之前),我会看到我使用表单发布的网页的 html 字符串(类似这样)
<html>
<body>
<form method='POST'>
<table>
<tr>
<td>Enter the JSON:</td>
<td>
<textarea name="json_input" cols="80" rows="30">
</textarea>
</td>
</tr>
<tr><td colspan='2'><input type='Submit' value='submit'></td></tr>
</table>
</form>
</body>
</html>
有人可以告诉我这里缺少什么,因为我希望在响应中得到相同的 json 结果。我在浏览器中提交表单后看到的内容
【问题讨论】:
-
当您在测试工具中发布带有数据的
form时,url是什么? -
如果您可以分享 url 和示例 json,我们将能够提供帮助。
-
请确保 API 方法是 POST(不是 GET 或其他)
-
请检查 /api 之外不需要额外的路径。例如。网站/api/客户
-
@Guruprasad Rao - myhost.com:22333/site/Api
标签: javascript c# jquery json restsharp