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. python之类与对象(1)

    面向对象编程是最有效的软件编写方法之一.编写类时,定义一群对象都有的通用行为.基于类创建对象时,每个对象都自动具备这种通用行为,然后可以根据需要赋予每个对象的独特的个性. 1. 类与对象的语法规范 关 ...

  2. 关于如何爬虫妹子图网的源码分析 c#实现

    网上也出现一些抓取妹子图的python 代码,今天我们用c#实现爬虫过程. 请看我的网站: www.di81.com private void www_94xmn_Com(string url, st ...

  3. 2018牛客多校6 - I Team Rocket KD树维护空间

    题意:给出n条铁路区间\([L,R]\),共有m个boom依时间顺序放置在\(k_i\)中,区间与\(k_i\)有交集的都被炸掉 求每次炸掉的铁路个数和最后输出所有id被炸的时间点 炸弹能炸到的区间满 ...

  4. C回调函数

    转自:https://segmentfault.com/a/1190000008293902?utm_source=tag-newest 在面试的时候被问到什么是回调函数,我是属于会用但不懂概念的那类 ...

  5. 实现Map按key或按value排序

    原理思路:用List实现排序,然后将List中的值遍历存入到LinkedHashMap 实现方式: //这里将map.entrySet()转换成list List<Map.Entry<St ...

  6. Ubuntu 18.04 安装 odoo12 源码版

    更新和升级 在我们进入安装过程之前,你应该更新和升级Ubuntu.打开终端窗口,发出以下命令: sudo apt-get updatesudo apt-get upgrade 注意:如果内核升级,则必 ...

  7. (转)linux exec与重定向

    原文:http://xstarcd.github.io/wiki/shell/exec_redirect.html linux exec与重定向 exec和source都属于bash内部命令(buil ...

  8. (转)Apache和Nginx运行原理解析

    Apache和Nginx运行原理解析 原文:https://www.server110.com/nginx/201402/6543.html Web服务器 Web服务器也称为WWW(WORLD WID ...

  9. 再探display:table-cell &&左边固定、右边自适应

    display:table-cell;这个属性用的不多,它和td差不多,但是如果可以用好还是能收益不少的,下面举例说明. 1. 父元素display:table-cell,并设置verticle-al ...

  10. oracle10g获取Date类型字段无时分秒解决办法!

    一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期.时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别. 最近使用 ...