大神们问个问题
我是.net,别人提供的接口,get请求,但是参数是在body里面json的形式;之前遇到的get请求都是直接拼接的url。提供接口方,他们这是restfull标准接口,不会去修改。但是我真的调不出来了。(接口用postman和python的request库能成功,他们给的demo是python)
百度了个,说是restshap可以,但是也不行,json数据传不过去。
地址: https://www.cnblogs.com/lidaying5/p/10797642.html
啊啊啊啊,疯了
request.AddParameter("undefined", "{\r\n\t"service": "WaybillService",\r\n\t"api_username": "erptest",\r\n\t"api_key": "78BE1BCAAED1EE08D344F894FBB296D3",\r\n\t"waybill": [{\r\n\t\t"orderid": "460692315855",\r\n\t\t"waybillno": "ML18082997131401_15"\r\n\t}]\r\n}", ParameterType.RequestBody);
这一句有问题,undefined。
但是postman中的restshap代码就是这样的。
这是错误:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>Invalid JSON data: ''</p>
@huihui_teresa: request.AddJsonBody();你这方法
@codingHeart:
都试过了 呜呜呜
@huihui_teresa:
我这是可以请求成功 但请求参数格式不对
@codingHeart:
能加下微信吗?
我的微信号:huihui_teresa
@huihui_teresa:
var client = new RestClient("https://orapi-stg.trackmeeasy.com/lomp-ext/sf-express/waybillService/getAgentNo");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "/");
request.AddHeader("Content-Type", "application/json");
request.AddJsonBody(new { service = "WaybillService", api_username = "erptest", api_key = "78BE1BCAAED1EE08D344F894FBB296D3", waybill = new object[] { new { orderid = "460692315855", waybillno = "ML18082997131401_15" } } });
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
测试通过了。
@codingHeart: 你这没解决根本问题吧 ,你这是post方式 ,测试通过只能说明对方接口改了!我也遇到这个问题,这样请求对方返回 接口不支持post
能说的详细点吗?他们可能不会改源码罢了,
你以Params提交就好了就不会再body里面了
你进行ajax进行提交就行了
注意一定要设置请求头参数Content-Type
为application/json
不能用params提交,放在body中在postman中才能请求成功;另外,参数是json格式的,没法以params提交呢。
@huihui_teresa: 那你就错咯,如果只是个普通json比如 {'a':111,'b':2}`就可以xxxxxx/?a=111&b=2
@小小咸鱼YwY: 他们不是普通的,是有嵌套的
我也遇到这个问题 ,目前还没解决
我们没解决,最后联系第三方把接口改为post请求了。
怎么解决的
我们没解决,最后联系第三方把接口改为post请求了。