c# - RestSharp 匹配 Curl 语法
问题描述
我正在尝试与似乎使用非标准设置的 API 交谈,这是有效的 curl 请求:
curl -d '{"id" : "blah"}' -H "Content-Type: application/json" -X GET http://127.0.0.1:2796/api/0.8/testing/testme
这会返回我所期望的,但是每当我尝试使用 RestSharp 执行此操作时,API 都会返回一个错误,指出它没有收到 json。这是我正在尝试使用的代码。
var client = new RestClient(server);
var request = new RestRequest("/api/0.8/testing/testme", Method.GET);
request.RequestFormat = DataFormat.Json;
request.AddJsonBody(new {id = "blah"});
IRestResponse response = client.Execute(request);
var content = response.
Console.WriteLine("Response: " + content);
这是一个 GET 请求,但它还需要发送 json 数据,所以我对它的工作原理有点困惑。它是放在正文中还是放在 URL 中?
任何建议或意见将不胜感激。
谢谢
解决方案
为什么要在获取请求中发布 JSON?那没有意义。
你确定你不是说你在发布 JSON 然后收到 JSON 响应吗?
我的建议是下载一个名为“Postman”的工具,并尝试首先让它在那里工作。
尝试这个:
var client = new RestClient("http://127.0.0.1:2796/api/0.8/testing/testme");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", "{\"id\" : \"blah\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
然后您可以阅读响应并将其解释到您的项目中。
使用
request.AddParameter("","",ParameterType.RequestBody);
代替
AddJsonBody
推荐阅读
- android - Jetpack compose 中的自动镜像
- list - 删除 sharedPreferences 列表中的一个元素
- react-leaflet - 将 React Leafletjs 映射添加到 Docusaurus 页面
- android - 在应用程序购买火棒电视中获得 AUTH_TOKEN_VERIFICATION_FAILURE: null: null amazon
- entity-framework - 实体框架,Linq:连接子表的结果
- postgresql - 为非超级用户安装 PostgreSQL 扩展
- python - Python中的while循环使流程图变得复杂
- asp.net - 从局部视图中对控制器的 AJAX 调用
- git - 在 IntelliJ 中显示 Git 冲突
- html - 如何在报表oracle html中将表格文本居中