javascript - 使用 C# Restsharp,如何复制表单帖子?

标签 javascript c# jquery json restsharp

我正在使用 Rest 服务来获取一些 json 数据。作为测试工具,他们给了我一个 url,如果我在浏览器中转到该 url,我有一个表单,我可以在文本区域中放入一些 json,然后提交表单,然后我会在页面重新加载时得到 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 有一个名为 json_input 的文本字段,它将用作请求参数。

<textarea name="json_input" cols="80" rows="30">

您的 AddBody 方法表明您正在发送带有 fieldtypevalue 参数的请求。

尝试用以下内容替换 AddBody 方法:

request.AddBody(new { json_input = "{ fieldtype : \"name\", value : \"joe\"}" });

//OR

request.AddParameter("json_input",
                    "{ fieldtype : \"name\", value : \"joe\"}");

关于javascript - 使用 C# Restsharp,如何复制表单帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35283191/

相关文章:

javascript - 从循环中动态创建 Javascript 数组

javascript - JSHint 关于使用外部变量的循环内部闭包的警告

c# - 无法将参数 'log' 绑定(bind)到类型 TraceWriter

javascript - 如何在js中使用条件连接消息或仅在一个警报框中构造消息

javascript - 关闭推送内容的 Canvas 边栏?

javascript - Chrome 扩展弹出窗口中 &lt;script&gt; 标记内的简单 jQuery 未执行

javascript - 如何检查应用程序是在前台还是后台

javascript - 如何使用 jQuery 在多个单选按钮中选择最新选中的单选按钮

c# - 导入的 system.web,我没有看到 server.mapPath?

c# - 错误构建 VSTS : ## [error] Error: Unable to locate the 'nuget'