WCF(远程服务器返回错误: 400 错误的请求)
类似相关问题有以下:
WCF- restful接口 POST方式调用报错(远程服务器返回错误: 400 错误的请求)
WCF Rest:不使用UriTemplate使用post方式传参解决HTTP400问题以及参数映射问题
等等!
具体原因参照:原创:转载请标明出处:http://www.cnblogs.com/sh91/p/3273072.html
标记自己遇到的问题原因,描述如下:
服务器接口:
[WebInvoke(Method = "*", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
string GetExptrainhist(string strjson);//入参为string类型
客户端调用:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://localhost:8734/GetExptrainhist");
request.ContentType = "application/json";
request.Method = "POST";
//======测试数据======start===============
ExpTrainHist_req t = new ExpTrainHist_req();
t.account = "exp";
t.fc = "expTrainHist_req";
t.starttime = "2017-04-17 13:00:00";
t.endtime = "2017-04-17 14:04:51";
string data = Newtonsoft.Json.JsonConvert.SerializeObject(t);
//string inputString = "c901411";
//======end===========
string inputString = data;
//string inputString = "{\"IdNumbr\":\"612523198308190014\",\"StuId\":\"901411\",\"SchCode\":\"1011099212\",\"TrainId\":\"3\",\"StartTime\":\"2017-04-17 00:00:01\",\"During\":\"3000\",\"ScoreHis\":\"10\"}";
Byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(inputString);
request.ContentLength = byteArray.Length;
Stream rstream = request.GetRequestStream();
rstream.Write(byteArray, 0, byteArray.Length);
rstream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//此处报错:远程服务器返回错误: 400 错误的请求
Stream stream = response.GetResponseStream();
StreamReader SR = new StreamReader(stream);
String info = SR.ReadToEnd();
string temp = Newtonsoft.Json.JsonConvert.DeserializeObject(info).ToString();
SR.Dispose();
=====================
http://www.cnblogs.com/sh91/p/3273072.html博客的问题原因:
注意:JSON格式默认为“”引起,所以 "\"ss\""不能写为“ss”,否则还是HTTP400错误。因为未识别数据,将数据拼接到其他字节了吧。
自己的入参改为:
//首先将data的 json字符串的双引号改成单引号,再加上双引号传到服务,问题解决。
inputString = "\"" + data.Replace("\"","\'") + "\""
Byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(inputString);
request.ContentLength = byteArray.Length;
Stream rstream = request.GetRequestStream();
rstream.Write(byteArray, 0, byteArray.Length);
rstream.Close();
WCF(远程服务器返回错误: 400 错误的请求)的更多相关文章
- wcf远程服务器返回错误404
最近根据quartz.net 和wcf做资讯内容定时推送,wcf调用的时候出现远程服务器返回错误404,一直找不到原因是什么,客户端和服务器地址和配置都没啥问题,最后发现wcf请求数据,有传输大小限制 ...
- WCF 远程服务器返回了意外响应: (400) Bad Request。
WCF 端 <system.web> <httpRuntime maxRequestLength="2147483647" /> </system. ...
- wcf 远程服务器返回了意外响应: (413) Request Entity Too Large。
我遇到这个问题的原因是:我使用asp.net 网站调用wcf服务后,通过方法提交数据产生的.我提交的数据是一个实体,包含很多字符串和图片格式的二进制数据超过4M 就报个错误. 后来同事帮忙解决了.他说 ...
- post数据时报错:远程服务器返回错误: (400) 错误的请求。
网上查了多种方法,有不少说法,报400说是传的数据格式不对,最后的结论确实是数据格式不对. Content_Type为:application/json,配的数据格式有些麻烦,特别数多层,单层还好.例 ...
- SharePoint 2013 Workflow Manager 1.0 远程服务器返回错误: (400) 错误的请求。 不支持查询字符串中的 api-version
环境: Windows Server 2012 R2 Standard SharePoint Server 2013 with sp1 通过Web 平台安装程序 5.0,已安装 Workflow Ma ...
- 十五、API请求接口-远程服务器返回错误: (400) 错误的请求错误
一.远程服务器返回错误: (400) 错误的请求错误 捕获异常查看具体错误 using Newtonsoft.Json; using System; using System.Collections. ...
- 远程服务器返回错误: 404错误、远程服务器返回错误:500错误、 HttpWebResponse远程服务器返回错误:(404、500) 错误。
现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);req.Use ...
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误。
现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl); req.Us ...
- NuGet在Push的时候提示“远程服务器返回错误:(403)已禁用”问题解决
在使用NuGet把包push到nuget官网的时候,提示了如下信息: Failed to process request. 'The specified API key is invalid or d ...
随机推荐
- MyBatis框架及原理分析
MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情: 封装JDBC操作 利用反射打通Java类与SQL语句之间的相互转换 MyBatis的主要设计目的就 ...
- 重新认识JavaScript里的创建对象(一)
一.序 面向对象有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.ECMA-262把对象定义为"无序属性的集合,其属性可以包含基本值.对象或者函数&quo ...
- 使用JS实现鼠标悬浮切换显示
实现的是在鼠标悬停在不同链接上,在同一位置切换显示想要显示的内容 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...
- vue项目目录介绍
Vue项目目录 初始化项目 vue init webpack []projectname] cd [projectname] npm install vue run dev 目录树 +---build ...
- struts2 之 struts2类型转换
1. 在struts2中,相比servlet来时,获取数据时,程序员没有进行手动的类型转换,类型转换工作都有struts2来完成处理,但愿对于自定义类型数据,struts2不会帮助我们完成类型转换工作 ...
- MVC实现SSO
近来工作无事,想做个SSO, 之前做过一个项目用到SSO,自己也没有看明白是个什么东西.现在正好有时间,所以想研究下. 先是从网上看到了SSO的思路: 三个站点:SiteA,SiteB,SiteMai ...
- Extjs6(一)——用sencha cmd建立一个ExtJs小项目
本文基于ext-6.0.0 一.用sencha cmd建立一个ExtJs小项目 首先,需要一个命令行工具.进入extjs所在目录. 然后,输入:sencha -sdk [ExtJs6.0文件夹地址] ...
- webmagic源码学习(一)
最近工作主要是一些爬虫相关的东西,由于公司需要构建自己的爬虫框架,在调研过程中参考了许多优秀的开源作品,包括webmagic,webcollector,Spiderman等,通过学习这些优秀的源码获益 ...
- Android 性能优化——之控件的优化
Android 性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向自定义View的优化. 1.首先先说一下我们在自定义View中可能会犯的3个错误: 1)Use ...
- .NET遇上Docker - Docker集成Cron定时运行.NETCore(ConsoleApp)程序.md
配置项目的Docker支持 对于VS中Docker的配置,依旧重复一些废话. 给项目添加Docker支持,VS2015可以直接使用Docker for VS插件,VS2017在安装时选择容器支持.VS ...