首页 新闻 会员 周边

关于httpclient

0
[已解决问题] 解决于 2018-07-16 10:50

如上所示,我要在客户端发送两个对象,我是把他们序列化后连起来,在api中用两个参数去接收,会报错,但是如果是一个对象的话就可以,请问像我这种传两个对象的该如何解决。

问题补充:

报Can't bind multiple parameters 这个异常

偶像之路的主页 偶像之路 | 初学一级 | 园豆:3
提问于:2018-07-16 09:38
< >
分享
最佳答案
1

https://stackoverflow.com/questions/44599041/mvc-web-api-error-cant-bind-multiple-parameters

“The reason for this rule is that the request body might be stored in a non-buffered stream that can only be read once.”

“You need create a model to store the expected aggregated data.”

需要新定义一个实体,包含book和yonghu这两个实体,然后再作为一个参数传过来。

奖励园豆:5
顾星河 | 大侠五级 |园豆:7173 | 2018-07-16 10:15

也就是说只能传一个对象参数,像我这样多个的不行?

 

偶像之路 | 园豆:3 (初学一级) | 2018-07-16 10:19

@偶像之路: 嗯 是的  所以一般别人多个对象的时候 都是合成一个大对象进行传递  

顾星河 | 园豆:7173 (大侠五级) | 2018-07-16 10:50

@❀七芯海棠❀: 谢谢你呀

偶像之路 | 园豆:3 (初学一级) | 2018-07-16 10:50
其他回答(3)
0

{json1:{},json2:{}}

czd890 | 园豆:14412 (专家六级) | 2018-07-16 10:10
0

如果你只是要解决这个问题的话就很容易了。

建一个叫 bookandyonghu 的类, 把两个类的数据都放一个类里面。

爱编程的大叔 | 园豆:30839 (高人七级) | 2018-07-16 10:14

传两个不行吗

支持(0) 反对(0) 偶像之路 | 园豆:3 (初学一级) | 2018-07-16 10:23
0

你让他怎么知道哪个是哪个?

吴瑞祥 | 园豆:29449 (高人七级) | 2018-07-16 10:50

那像这种两个对象的能传吗

支持(0) 反对(0) 偶像之路 | 园豆:3 (初学一级) | 2018-07-16 10:51

@偶像之路: 你让他怎么知道哪个是哪个

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-07-16 10:57

@吴瑞祥: 客户端: var myyonghu = YesEF.yonghu.Find(3);
            var mybook = YesEF.books.Find(Id);
            var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
            var mybookoo = JsonConvert.SerializeObject(new { mybook, myyonghu },Formatting.Indented,jsonSetting);
            HttpContent httpContent = new StringContent(mybookoo);
            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            var httpClient = new HttpClient();
            var responseJson =httpClient.PostAsync("http://172.168.2.101:8888/api/Charging/GetAllChargingData/", httpContent)
                .Result.Content.ReadAsStringAsync().Result;

 

 

API:   [HttpPost]
        public HttpResponseMessage GetAllChargingData(Allbook mybook1)
        {
          

另外在定义一个类:    public class Allbook
    {
        public books mybook { get; set; }
        public yonghu myyonghu { get; set; }
    }
}

 

 

 

 

 

支持(0) 反对(0) 偶像之路 | 园豆:3 (初学一级) | 2018-07-16 11:00

@吴瑞祥: 我这样是可以的

支持(0) 反对(0) 偶像之路 | 园豆:3 (初学一级) | 2018-07-16 11:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册