微沫小熊 2019-05-30 19:16 采纳率: 50%
浏览 580

WebClient.UploadValues方法调用第三方接口返回400错误

问题:webclient请求的时候,远程服务器返回400错误,
但是数据又传送给对方了,很困惑为啥会catch到400错误。

代码在:
byte[] byRemoteInfo = webClientObj.UploadValues(strUrl,postVars);
这里报的异常,返回
{"远程服务器返回错误: (400) 错误的请求。"}

//注释里的更改请求头的几个方法都试过了,不好使。

private void SendPost(int agent, string secretKey, string strUrl, ViewModels.GetReInfoViewModel viewModel, string cameraName)
        {
            agent = 1;//代理人id
            secretKey = "miyao";
            strUrl="请求串";//第三方接收的url,demo:http://www.baidu.com/webapi/postvalues?access_token=passsecrete
            try
            {
                var webClientObj = new WebClient();
                var postVars = new System.Collections.Specialized.NameValueCollection();
                //返回状态内容
                postVars.Add("BusinessStatus", viewModel.BusinessStatus.ToString());
                postVars.Add("StatusMessage", viewModel.StatusMessage);
                //webClientObj.Encoding = Encoding.UTF8;
                byte[] byRemoteInfo = webC**lientObj.UploadValues(strUrl,postVars);
                //返回值
                string remoteInfo = Encoding.UTF8.GetString(byRemoteInfo);
                logInfo.Info(string.Format("请求第三方{0}接口返回消息:{1}", agent, remoteInfo));
            }
            catch (Exception ex)
            {
                logError.Error("调用" + agent + "接口传摄像头续保信息接口异常,Url为:" + strUrl + ";\n 异常信息:" + ex.StackTrace + " \n " + ex.Message);
            }
        }
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-05-31 00:14
    关注

    400说明你连上了服务器,对方服务器返回你400的状态码,这个状态码通常表示没有权限,也许是你的参数传递的不对,也许是服务器本身明明接收了数据但是还是错误地返回了状态码,这个要和服务器的所有者联系。

    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功