Winform Post请求传递Json格式参数的写法
注意的是,Json传递需用到Hashtable(哈希表)来添加参数,本人也试过用JObject添加页不行,感觉应该可以的不知道怎么回事,直接上代码,
Hashtable ht = new Hashtable();
ht.Add("agentCode", agentcode);
ht.Add("agentPassword", agentpwd);
ht.Add("body", body);
HttpRequest.DoPost(registerUrl, ht); //HttpRequest是自定义的一个类
/// <summary> WebService:Post调用
/// </summary>
/// <param name="url">Webservice地址</param>
/// <param name="paramsOfUrl">传入数据</param>
/// <returns>返回结果</returns>
public static string DoPost(string url, Hashtable paramsOfUrl)
{
if (url == null)
{
throw new Exception("WebService地址为空");
}
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
// 编辑并Encoding提交的数据
byte[] data = GetJointBOfParams(paramsOfUrl);
// 发送请求
request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
// 获得回复
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string result = reader.ReadToEnd();
reader.Close();
return result;
}
/// <summary> 拼接参数串----Get
/// </summary>
/// <param name="paramsOfUrl">参数项</param>
/// <returns>返回字符串</returns>
private static String GetJointSOfParams(Hashtable paramsOfUrl)
{
if (paramsOfUrl == null || paramsOfUrl.Count == 0) return String.Empty;
// 编辑并Encoding提交的数据
StringBuilder sbuilder = new StringBuilder();
int i = 0;
foreach (DictionaryEntry de in paramsOfUrl)
{
string value = ToHttpChar(de.Value.ToString());
if (i == 0)
{
sbuilder.Append(de.Key + "=" + value);
}
else
{
sbuilder.Append("&" + de.Key + "=" + value);
}
i++;
}
return sbuilder.ToString();
}
/// <summary> 拼接参数串----Post
/// </summary>
/// <param name="paramsOfUrl">参数项</param>
/// <returns>返回字节数组</returns>
private static byte[] GetJointBOfParams(Hashtable paramsOfUrl)
{
// 编辑并Encoding提交的数据
String stringJointOfParams = GetJointSOfParams(paramsOfUrl);
byte[] data = new ASCIIEncoding().GetBytes(stringJointOfParams);
return data;
}
/// <summary> 转义特殊字符
/// </summary>
private static string ToHttpChar(string value)
{
value = value.ToString().Replace("+", "%2B");
//value = value.ToString().Replace(" ", "%20");
//value = value.ToString().Replace("/", "%2F");
//value = value.ToString().Replace("?", "%3F");
//value = value.ToString().Replace("%", "%25");
//value = value.ToString().Replace("#", "%23");
//value = value.ToString().Replace("&", "%26");
//value = value.ToString().Replace("=", "%3D");
//value = value.ToString().Replace(@"\", "%5C");
//value = value.ToString().Replace(".", "%2E");
//value = value.ToString().Replace(":", "%3A");
return value;
}
Winform Post请求传递Json格式参数的写法的更多相关文章
- Springmvc 的post请求的json格式参数
背景: 这两天在项目中遇到了一个问题.我的环境是springmvc4.1.9,写了几个可以用ajax请求的接口(ajax.jsonp 调用正常).突然一时兴起就用 HTTP 请求的工具(比如火狐浏览器 ...
- get请求传递json格式数据的两种方法
get请求参数为json格式数据,使用pyhton+request的两种实现方式如下: 方法一:使用requests.request() 示例代码如下: 1.导入requests和json impor ...
- java 后台实现ajax post跨域请求传递json格式数据获取json数据问题
参考大神:http://blog.csdn.net/chunqiuwei/article/details/19924821 java后台: public String ajaxProxy(Intege ...
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析 一:问题demo展示 ...
- JAVA发送POST请求携带JSON格式字符串参数
import org.apache.commons.lang.StringUtils; import org.apache.http.HttpEntity; import org.apache.htt ...
- 使用jQuery发送POST,Ajax请求返回JSON格式数据
问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...
- java web 服务器端处理json格式参数
前面我们说了传递参数的两种访书,第一是key-value形式,第二是json格式,对于第一种我们在服务器端直接使用 request.getParameter("key");就能获取 ...
- springmvc通过ajax异步请求返回json格式数据
jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...
- 模拟一个http 请求的json格式报文,带 rsa 签名操作
一.对需要加密的字符串,定义RsaSignUnsign 类,代码如下: 实现了: 1.实现了生成新的pubkey.pri_key方法: 2.将新生成的keys 写入文件: 3.从文件获取pubkey. ...
随机推荐
- Gym - 101142C CodeCoder vs TopForces(搜索)
题意:给定n个人在两个网站上的得分,一个人若能在任意一个网站里战胜另一个人,则认为这个人能战胜那个人.问每个人都能战胜多少人. 分析: 1.战胜具有传递性. 例如: 4 5 2 7 3 3 因为第三个 ...
- 大数据高可用集群环境安装与配置(03)——设置SSH免密登录
Hadoop的NameNode需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现 Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有 ...
- ES6 之 数组的扩展
ES5 检测数组 let arr = [1,2,3,4] Array.isArray(arr) arr instanceof Array 转换方法 arr.toLocaleString() arr.t ...
- 实验吧web-易-这个看起来有点简单
看url中有id=1,明显的sql注入,这里使用手工注入不适用sqlmap,想用的话参考文章(传送门) 1.首先测试有没有sql注入漏洞, http://ctf5.shiyanbar.com/8/in ...
- Linux设置邮箱发送邮件
安装sendmail服务 然后配置/etc/mail.rc文件,如果没有生成就自己建立. 内容如下: set from=xxx@163.com smtp=smtp.163.com set smtp-a ...
- (转载)JVM中的内存模型与垃圾回收
转载自微信公众号:Java高级架构(Java-jiagou)-----看完这篇文章,我奶奶都知道JVM中的内存模型与垃圾回收了! 六.内存模型 6.1 内存模型与运行时数据区 Java虚拟机在执行J ...
- TypeError: TF_SessionRun_wrapper: expected all values in input dict to be ndarray.
在用Embedding时出现了这个问题,具体的代码: model.add(Embedding(input_dim = vocab_size, output_dim = embedding_vector ...
- SEO初步学习之影响网站排名的因素
本文介绍一些比较明显的因素,一些隐藏较深的原因还有待发掘: 1.采集网站内容,即抄袭其他网站的内容. 2.新站上传后建议不要有大的改动. 3.标题频繁修改. 4.大量投放垃圾外链. 5.不做友链,交友 ...
- 挑战目标跟踪算法极限,SiamRPN系列算法解读
商汤科技智能视频团队首次开源其目标跟踪研究平台 PySOT.PySOT 包含了商汤科技 SiamRPN 系列算法,以及刚被 CVPR2019 收录为 Oral 的 SiamRPN++.此篇文章将解读目 ...
- IDEA忽略文件,防止git提交不想提交的文件
IDEA忽略文件,防止git提交不想提交的文件 方法一(只对没有add到仓库的文件有效): 方法二(只对没有add到仓库的文件有效): 在IDEA中安装.ignore插件.创建好了之后: 安装.git ...