gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:16:03 32 4
gpt4 key购买 nike

我正在使用休息服务取回一些 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 有一个名为 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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com