webrequst发送到指定的url

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Net;
using System.Text;
using System.IO; /// <summary>
///simsimi 的摘要说明
/// </summary>
public class simsimi
{
public simsimi()
{
//
//TODO: 在此处添加构造函数逻辑
//string pageHtml = SendDataByGET("htp://www.simsimi.com/func/req?msg=" + msg + "!&lc=ch");
//
}
public string ReturnStr(string msg)
{
return ReturnStr(msg, "Re_txt");
}
public string ReturnStr(string msg,string act)
{
string pageHtml = SendDataByGET("http://124.172.174.141/Handler1.ashx?msg=" + msg + "&act=" + act);
pageHtml = "[" + pageHtml + "]";
WebPageBase wb = new WebPageBase(); wb.WriteTxt(pageHtml);
List<SiriResult> _List = JsonConvert.DeserializeObject<List<SiriResult>>(pageHtml);
string re = "";
foreach (SiriResult c in _List)
{
re = c.Response;
}
return re;
}
#region 同步通过GET方式发送数据
/// <summary>
/// 通过GET方式发送数据
/// </summary>
/// <param name="Url">url</param>
/// <param name="postDataStr">GET数据</param>
/// <param name="cookie">GET容器</param>
/// <returns></returns>
public string SendDataByGET(string Url)
{
string host = "http://124.172.174.141";
WebRequest webRequest = WebRequest.Create(Url);
HttpWebRequest request = webRequest as HttpWebRequest; //设置cookie
CookieContainer cc = new CookieContainer();
cc.Add(new Uri(host), new Cookie("JSESSIONID", "FC50E1B413D61FF258ED76121D15DBC8"));
cc.Add(new Uri(host), new Cookie("__utma", "119922954.1431887846.1365044080.1365044080.1365044080.1"));
cc.Add(new Uri(host), new Cookie("__utmb", "119922954.3.9.1365044144105"));
cc.Add(new Uri(host), new Cookie("__utmc", ""));
cc.Add(new Uri(host), new Cookie("__utmz", "119922954.1365044080.1.1.utmcsr=tieba.baidu.com|utmccn=(referral)|utmcmd=referral|utmcct=/p/2166507443"));
cc.Add(new Uri(host), new Cookie("sagree", "true"));
request.CookieContainer = cc; request.Method = "GET";
request.ContentType = "application/json; charset=utf-8";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20100101 Firefox/20.0";
request.Referer = " http://124.172.174.141/talk.htm"; HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close(); return retString;
}
#endregion /// <summary>
/// 直接调用此方法,主动下发数据,返回是否成功的字符串
/// </summary>
/// <param name="JSONData">json格式数据</param>
/// <param name="Url">要推送的url</param>
/// <returns></returns>
public string GetResponseData(string JSONData,string Url)
{
byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "text/xml";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, , bytes.Length); //声明一个HttpWebRequest请求
request.Timeout = ;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.UTF8; StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReceive.Dispose();
streamReader.Dispose(); return strResult;
}
}

json字符串处理类

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;
using System.Reflection;
using System.IO;
using Newtonsoft.Json.Linq; /// <summary>
///JsonConvert 的摘要说明
/// </summary>
public class JsonToList<T>
{
public JsonToList()
{
//
//TODO: 在此处添加构造函数逻辑
//
} public List<T> ToList(string jsonString)
{
List<T> list = new List<T>();
List<string> li = JonsArr(jsonString);
foreach (string s in li)
{
T t = (T)jsonToObject(s, typeof(T));
list.Add(t);
}
return list;
} /// <summary>
/// 将{""name"":""zhang"",""age"":""19""},{""name"":""d打发"",""age"":""19""},{""name"":""阿凡达"",""age"":""19""}";格式
/// 的字符串拆解,形成值对数组,加到list
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
public static List<string> JonsArr(string jsonString)
{
List<string> li = new List<string>();
string s = jsonString.Replace(" ", "").Replace("},", "$");
string[] strArr = s.Split('$');
foreach (string str in strArr)
{
if (!string.IsNullOrEmpty(str))
{
string s1 = str.Replace("\"", "").Replace("}", "").Replace("{", "").Replace("\r","").Replace("\n","");
li.Add(s1);
}
}
return li;
}
/// <summary>
/// 反射取得单个对象
/// </summary>
/// <param name="jsonstr"></param>
/// <param name="objectType"></param>
/// <returns></returns>
public static object jsonToObject(string jsonstr, Type objectType)//传递两个参数,一个是json字符串,一个是要创建的对象的类型
{
string[] jsons = jsonstr.Split(new char[] { ',' });//将json字符串分解成 “属性:值”数组
for (int i = ; i < jsons.Length; i++)
{
jsons[i] = jsons[i].Replace("\"", "");
}//去掉json字符串的双引号
object obj = System.Activator.CreateInstance(objectType); //使用反射动态创建对象
//object obj = System.Activator.CreateInstance(typeof(stu)); //使用反射动态创建对象
PropertyInfo[] pis = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);//获得对象的所有public属性 if (pis != null)//如果获得了属性
foreach (PropertyInfo pi in pis)//针对每一个属性进行循环
{
for (int i = ; i < jsons.Length; i++)//检查json字符串中的所有“属性:值”类表
{
if (jsons[i].Split(new char[] { ':' })[] == pi.Name)//如果对象的属性名称恰好和json中的属性名相同
{
Type proertyType = pi.PropertyType; //获得对象属性的类型
pi.SetValue(obj, Convert.ChangeType(jsons[i].Split(new char[] { ':' })[], proertyType), null);
//将json字符串中的字符串类型的“值”转换为对象属性的类型,并赋值给对象属性
}
}
}
return obj;
}
}

调用方法

 String jsonText = @"{""name"":""yy"",""age"":""19""},{""name"":""77"",""age"":""19""},{""name"":""阿凡达"",""age"":""19""}";
JsonToList<stu> jt = new JsonToList<stu>();
List<stu> li = jt.ToList(jsonText);

主动发送微信内容范例

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;
using System.Reflection;
using System.IO;
using Newtonsoft.Json.Linq; public partial class test : WebPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
simsimi ss = new simsimi();
JSONData jso = new JSONData();
jso.Access_Token = "_ocC5n0Y4hYeZkE69xdthP_B8ic42JttWc8L5BamccxJw5d2nAdd8jPBZbRrigERbKoUCLsXS47WT73UkxlRplF7GBZaN5LhFvicGZq9bODyy2bxqESbSlnyruHU-xosa0Gcm1rbjoCZI7XWz5004A";
jso.ToUser = "ocsmquGIU2GK7oQWTiUtBpGub64k"; string title = "主题骑车比赛aaaa";
string desc = "一下是详细介绍";
string msg = "打球吧1146";
string media_id = "i78Xd2EzMd-vCEOLOYY4ugtEmN94eZgAJrSUK2WADzgq5ZVER9zr1xtwXriJCZ_C"; jso.JsonParaMedia = string.Format(@"{{""title"":""{0}"",""desc"":""{1}"""",""media_id"":""{2}"""",""msg"":""{3}""""""}}", title, desc, media_id, msg); string url = "http://test";
string picurl = "http://imag";
for (int i = ; i < ; i++)
{
jso.JsonParaNews += string.Format(@"{{""title"":""{0}"",""description"":""{1}"",""url"":""{2}"",""picurl"":""{3}""}},", title + i.ToString(), desc + i.ToString(), url + i.ToString(), picurl + i.ToString());
} string s_bakc = ss.GetResponseData(jso.JsonDataString(JSONData.SendType.news), jso.Url);
base.WriteTxt(s_bakc);
Response.Write(s_bakc); //String jsonText = @"{""name"":""yy"",""age"":""19""},{""name"":""77"",""age"":""19""},{""name"":""阿凡达"",""age"":""19""}";
//JsonToList<stu> jt = new JsonToList<stu>();
//List<stu> li = jt.ToList(jsonText); /* 推送文本
string JSONData = "{ \"touser\": \"ocsmquGIU2GK7oQWTiUtBpGub64k\", \"msgtype\": \"text\", \"text\": { \"content\": \"33\" }}";
string Url = @"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=7QqKQ5bynTsZ0u4crNuEs6pVVJca-ZiQOibppGDDkgG_ytjAefWXdVk4X619c5mrPepfuMcmjGAUTej5SLNQU4DVydPXVwb9ZWFtbhTHc5RjPTuOGTa2LwJulmJ2-V5eEaY0X57Ikg0_Kpa8IQob8A";
string s_bakc = ss.GetResponseData(JSONData,Url);
base.WriteTxt(s_bakc);*/ /* 推送图片
string JSONData = "{ \"touser\": \"ocsmquGIU2GK7oQWTiUtBpGub64k\", \"msgtype\": \"image\", \"image\": { \"media_id\":\"xj8VZqQG14KcEHUsPa95zi1obtucOoU_OU6Tf5W1QkBLQIsof7XXxS8QHOgIl1tq\" }}";
string Url = @"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=7QqKQ5bynTsZ0u4crNuEs6pVVJca-ZiQOibppGDDkgG_ytjAefWXdVk4X619c5mrPepfuMcmjGAUTej5SLNQU4DVydPXVwb9ZWFtbhTHc5RjPTuOGTa2LwJulmJ2-V5eEaY0X57Ikg0_Kpa8IQob8A";
string s_bakc = ss.GetResponseData(JSONData, Url);
base.WriteTxt(s_bakc);
Response.Write(s_bakc);*/ /* 推送菜单 */
//string JSONData = "{ \"button\":[ { \"type\":\"click\", \"name\":\"今日歌曲\", \"key\":\"V1001_TODAY_MUSIC\" }, { \"type\":\"click\", \"name\":\"歌手简介\", \"key\":\"V1001_TODAY_SINGER\" }, { \"name\":\"菜单\", \"sub_button\":[ { \"type\":\"view\", \"name\":\"搜索\", \"url\":\"http://www.soso.com/\" }, { \"type\":\"view\", \"name\":\"视频\", \"url\":\"http://v.qq.com/\" }, { \"type\":\"click\", \"name\":\"赞一下我们\", \"key\":\"V1001_GOOD\" }] }] }";
//string Url = @"https://api.weixin.qq.com/cgi-bin/menu/create?access_token=I8UUyLt5e8EUxZvcrcvEpf2kLOjCZ0x3ZAbzIueR80XvGIgDXWb4czhL2yzhsMyoh0ju7RVRUBjF1M16N-9XykbHiGgwa6s9-o8BhnwYCNfHcK2WGXkrUlZrOMHdpuOYcx5MiD7UNF0lTB1lZTJ1iA";
//string s_bakc = ss.GetResponseData(JSONData, Url);
//base.WriteTxt(s_bakc);
//Response.Write(s_bakc); }
}

注意:只能值对 jsonText格式的json的字符串进行处理,再复杂点的,就需要改写类中的方法了

使用时,请引用dll Newtonsoft.Json_2013_12_26_19_23.rar

json字串转换成泛型类的更多相关文章

  1. Gson把json串转换成java实体对象

    Gson把json串转换成java实体对象的方法如下: 1.首先导入Gson的jar包,网上可以下载. java实体对象如下: public class Model { private double ...

  2. .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (一)

    .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二) Json是WEB交互常见的数据,.net core 处理方式是转为强类型,没有对应的强类型会被抛弃,有时 ...

  3. 将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑

    将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑 /** * 根据传入字符串 * * @param str 传入的日期字符串 形如:Oct 8, 2016 5:29 ...

  4. Newtonsoft.Json 把对象转换成json字符串

    var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...

  5. mormot 数据集转换为JSON字串

    mormot 数据集转换为JSON字串 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graph ...

  6. .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二)

    .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二) .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (一) 上一篇主 ...

  7. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  8. H面试程序(27):字串转换

    //1 字串转换 //问题描述: //将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a: //若输 ...

  9. Java—JSON串转换成实体Bean对象模板

    介绍 模板需求说明   开发中经常遇到前端传递过来的JSON串的转换,后端需要解析成对象,有解析成List的,也有解析成Map的. 依赖 <dependency> <groupId& ...

随机推荐

  1. JS之判断json对象中是否含有某个key值

    var json = {"key1":"val1","key2":"val2","key3":&qu ...

  2. 基础篇:6.3)形位公差-标注 Mark

    本章目的:了解形位公差是如何标注的,及其意义: 1.形位公差框格 Feature Control Frames 2.被测要素的标注(两国标准不同) 2.1 中国GB标准 — 形位公差框格通过用带箭头的 ...

  3. hdu1466计算直线的交点数 非原创

    原文链接 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数. 比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). Input输入数据包含多个测试实例,每个测试实例占一行,每 ...

  4. Hangfire项目

    什么是Hangfire Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core.个人认为它最大特点在于内置提供集成化的控制台,方便后台查看及监控: 另外,Hang ...

  5. css一些常用技巧代码

      图片等比例自动缩放 img{ width: auto; height: auto; max-width: 100%; max-height: 100%; } 多行省略  最后line-clamp设 ...

  6. 为什么要实现Serializable

    工作中我们经常在进行持久化操作和返回数据时都会使用到javabean来统一封装参数,方便操作,一般我们也都会实现Serializable接口,那么问题来了,首先:为什么要进行序列化:其次:每个实体be ...

  7. selenium+Python(处理html5的视频播放)

    Webdriver支持在指定的浏览器测试HTML5,另外可以用JavaScript来测试这些功能,这样就可以在任何浏览器上测试HTML5 多数浏览器使用控件来播放视频,但是不同浏览器需要使用不同的插件 ...

  8. LinuxShell脚本基础 6-case...esac的使用和通配符

    1.case...esac的使用 #!/bin/bash echo "请输入编号 选择不同的显示文件和目录方式:" echo "1 - 普通显示" echo & ...

  9. Ubuntu14.04下完美安装cloudermanage多种方式(图文详解)(博主推荐)

    说在前面的话 我的机器是总共4台,分别为ubuntucmbigdata1.ubuntucmbigdata2.ubuntucmbigdata3和ubuntucmbigdata4. ClouderaMan ...

  10. java.lang.RuntimeException: HRegionServer Aborted的问题

    进程情况 [hadoop@hadoop1 hbase]$ jps QuorumPeerMain ResourceManager HMaster NameNode JournalNode HRegion ...