[转载]网络协议模拟之QQ微博分享接口应用 - 凌晨的搜索者 - 博客园

[转载]网络协议模拟之QQ微博分享接口应用 – 凌晨的搜索者 – 博客园.

QQ微博在营销领域越来越受青睐了,这里面集成了很多非常有用的接口,像是邮件分享、空间分享、QQ分享、微信分享等。这相对于传统的直接模拟协议,登录 邮箱等方式进行邮件发送甚至更有效。所有这些都没什么技术难度,所以实现起来是很简单的。如果在开发过程中遇到了些困难的话,可能是多线程的把握吧!

在这样一些营销类项目之中,绝大多数都设计了多账号切换操作,这使得整个架构控制起来异常繁琐。对于多线程功底稍差的人来说,加上UI设计的搭配,简直就 是地狱般的折磨。项目实战开发最需要的就是经验的积累,平时练习的时候就得多为下一次开发做技术上的准备,否则一旦开始就会显得很吃力耗时。

上图只是我一个项目里的一张截图,我们要说的功能大致就是上面图中所表现出来的。但是这里,只做一个功能实现描述,不作项目完整实现。

步骤:

1.基础功能的类准备

1.处理xml的xmlHelper,2.处理Http模拟的HttpHelper 3.处理QQ登录验证密码MD5加密的QQMd5 4.其他一些Util功能实现类

所有这些类我会稍后放在文章附件里。

2.创建Account用户资料类[登录]

下面的这个类我只是给各位一个例子,可以展开看一下,但是还是要自己依据自己情况具体分析。
 

<span class="typ">View</span><span class="pln"> </span><span class="typ">Code</span><span class="pln">
 
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Account</span><span class="pln">
   </span><span class="pun">{</span><span class="pln">
       </span><span class="com">#region 属性</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 帐号登录的顺序号码</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> ID </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// QQ帐号</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Uin</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">List</span><span class="str"><string></span><span class="pln"> </span><span class="typ">Froms</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Mail</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 昵称</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Nick</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 我的首页</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">MyPage</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// QQ未加密的密码</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Password</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// QQ加密密码</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> P </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// QQ微博的Cookie容器</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">CookieContainer</span><span class="pln"> </span><span class="typ">WeiboCookieContainer</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// QQ微博的Cookie字符</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">WeiboCookieString</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// QQ微博对应的Sid</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Sid</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 目前帐号的状态</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Status</span><span class="pln"> </span><span class="typ">CurrentStatus</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 帐号类型</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">AccountStyle</span><span class="pln"> </span><span class="typ">AccountStyle</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 是否需要验证码</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">bool</span><span class="pln"> </span><span class="typ">NeedVerify</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 验证码图片</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Image</span><span class="pln"> </span><span class="typ">VerifyImage</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 验证码字符串</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">VerifyCode</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">set</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
        
       </span><span class="com">#endregion</span><span class="pln">
       </span><span class="com">#region 构造函数</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Account</span><span class="pun">()</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="typ">Init</span><span class="pun">();</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Account</span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> uin</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> password</span><span class="pun">)</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Uin</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> uin</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Password</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> password</span><span class="pun">;</span><span class="pln">
           </span><span class="typ">Init</span><span class="pun">();</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="com">#endregion</span><span class="pln">
       </span><span class="com">#region 私有函数</span><span class="pln">
       </span><span class="kwd">private</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> </span><span class="typ">Init</span><span class="pun">()</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">CookieContainer</span><span class="pun">();</span><span class="pln">
           </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">CurrentStatus</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">.</span><span class="typ">Unlogin</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">AccountStyle</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">AccountStyle</span><span class="pun">.</span><span class="typ">Unknow</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="com">#endregion</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span>

上面的那些都不是关键,我们要做的第一步还是完成“判断验证码>输入验证码(如果有的话)>登录”,除了要我完成Http模拟请求之外还要从返回的结果中提取有用的信息。

<span class="com">#region 登录过程</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 判断登录微博是否需要验证码</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="com">/// <returns></returns></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">bool</span><span class="pln"> </span><span class="typ">CheckVerify_Weibo</span><span class="pun">(</span><span class="kwd">ref</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> vctype</span><span class="pun">)</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
           url </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"http://check.ptlogin2.qq.com/check?uin={0}@qq.com&appid=46000101&ptlang=2052&r={1}"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Uin</span><span class="pun">,</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Random</span><span class="pun">().</span><span class="typ">NextDouble</span><span class="pun">());</span><span class="pln">
           html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">IsNullOrEmpty</span><span class="pun">(</span><span class="pln">html</span><span class="pun">))</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> pattern </span><span class="pun">=</span><span class="pln"> </span><span class="pun">@</span><span class="str">"ptui_checkVC\('(?'need'[^']*)','(?'vctype'[^']*)','[^']*'\);"</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> need </span><span class="pun">=</span><span class="pln"> html</span><span class="pun">.</span><span class="typ">Match</span><span class="pun">(</span><span class="pln">pattern</span><span class="pun">,</span><span class="pln"> </span><span class="str">"need"</span><span class="pun">);</span><span class="pln">
           vctype </span><span class="pun">=</span><span class="pln"> html</span><span class="pun">.</span><span class="typ">Match</span><span class="pun">(</span><span class="pln">pattern</span><span class="pun">,</span><span class="pln"> </span><span class="str">"vctype"</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">need </span><span class="pun">==</span><span class="pln"> </span><span class="str">"1"</span><span class="pun">)</span><span class="pln">
           </span><span class="pun">{</span><span class="pln">
               </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">CurrentStatus</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">.</span><span class="typ">NeedVerify</span><span class="pun">;</span><span class="pln">
              </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">VerifyImage</span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">GetImage</span><span class="pun">();</span><span class="pln">
               </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
           </span><span class="pun">}</span><span class="pln">
           </span><span class="kwd">else</span><span class="pln">
           </span><span class="pun">{</span><span class="pln">
               </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">CurrentStatus</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">.</span><span class="typ">Unlogin</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">VerifyCode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> vctype</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
           </span><span class="pun">}</span><span class="pln">
          
       </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 获取显示验证码</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="com">/// <returns></returns></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Image</span><span class="pln"> </span><span class="typ">GetImage</span><span class="pun">()</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
         </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"http://captcha.qq.com/getimage?aid=46000101&r=0.38706237439032276&uin={0}@qq.com"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Uin</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">Stream</span><span class="pln"> stream </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetStream</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">Image</span><span class="pln"> image </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Image</span><span class="pun">.</span><span class="typ">FromStream</span><span class="pun">(</span><span class="pln">stream</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">return</span><span class="pln"> image</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="com">/// <summary></span><span class="pln">
       </span><span class="com">/// 登录</span><span class="pln">
       </span><span class="com">/// </summary></span><span class="pln">
       </span><span class="com">/// <returns></returns></span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Login</span><span class="pun">()</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> uin</span><span class="pun">,</span><span class="pln">password</span><span class="pun">,</span><span class="pln">verifyCode</span><span class="pun">;</span><span class="pln">
           uin </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Uin</span><span class="pun">;</span><span class="pln">
           password </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Password</span><span class="pun">;</span><span class="pln">
           verifyCode </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">VerifyCode</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> html</span><span class="pun">=</span><span class="str">""</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">IsNullOrEmpty</span><span class="pun">(</span><span class="pln">uin</span><span class="pun">)</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">IsNullOrEmpty</span><span class="pun">(</span><span class="pln">password</span><span class="pun">))</span><span class="pln">
               </span><span class="kwd">throw</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Exception</span><span class="pun">(</span><span class="str">"没有添加帐号,或帐号的密码为空"</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">IsNullOrEmpty</span><span class="pun">(</span><span class="pln">verifyCode</span><span class="pun">))</span><span class="pln">
               </span><span class="kwd">throw</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Exception</span><span class="pun">(</span><span class="str">"验证码为空,无法继续登录"</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">P </span><span class="pun">=</span><span class="pln"> </span><span class="typ">QQMd5</span><span class="pun">.</span><span class="typ">Encrypt</span><span class="pun">(</span><span class="pln">uin</span><span class="pun">,</span><span class="pln">password</span><span class="pun">,</span><span class="pln">verifyCode</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"http://ptlogin2.qq.com/login?ptlang=2052&u={0}@qq.com&p={1}&verifycode={2}&low_login_enable=1&low_login_hour=720&css=http://imgcache.qq.com/ptcss/b4/wb/46000101/login1.css&aid=46000101&mibao_css=m_weibo&u1=http%3A%2F%2Ft.qq.com&ptredirect=1&h=1&from_ui=1&dumy=&fp=loginerroralert&action=7-9-1381063&g=1&t=1&dummy="</span><span class="pun">,</span><span class="pln">
                                     uin</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">P</span><span class="pun">,</span><span class="pln"> verifyCode</span><span class="pun">);</span><span class="pln">
           html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">html</span><span class="pun">.</span><span class="typ">Contains</span><span class="pun">(</span><span class="str">"您输入的验证码不正确,请重新输入"</span><span class="pun">))</span><span class="pln">
               </span><span class="kwd">throw</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Exception</span><span class="pun">(</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"验证码输入不正确"</span><span class="pun">));</span><span class="pln">
           </span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">html</span><span class="pun">.</span><span class="typ">Contains</span><span class="pun">(</span><span class="str">"您输入的帐号或密码不正确,请重新输入"</span><span class="pun">))</span><span class="pln">
               </span><span class="kwd">throw</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Exception</span><span class="pun">(</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"帐号或密码不正确"</span><span class="pun">));</span><span class="pln">
           </span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">html</span><span class="pun">.</span><span class="typ">Contains</span><span class="pun">(</span><span class="str">"登录成功"</span><span class="pun">))</span><span class="pln">
           </span><span class="pun">{</span><span class="pln">
               html </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"登录成功"</span><span class="pun">);</span><span class="pln">
               </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">CurrentStatus</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">.</span><span class="typ">Login</span><span class="pun">;</span><span class="pln">
              
           </span><span class="pun">}</span><span class="pln">
          
           </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
         </span><span class="pun">}</span>

由于本人不太喜欢用已经做好的轮子去用Json处理类(比如Newtonsoft.net),所以一般处理都是用的正则表达式,各位也可以自己用JsonObejct类去处理,不用跟我一样用正则这种笨方法。
3.获取必要信息[提取微博数据]

<span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">GetInfo</span><span class="pun">()</span><span class="pln">
       </span><span class="pun">{</span><span class="kwd">string</span><span class="pln"> html</span><span class="pun">=</span><span class="str">""</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">try</span><span class="pln">
           </span><span class="pun">{</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://t.qq.com"</span><span class="pun">;</span><span class="pln">
               html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> pattern </span><span class="pun">=</span><span class="pln"> </span><span class="pun">@</span><span class="str">"href=""(?'mypage'[^""]*)""><u>首页"</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> mypage </span><span class="pun">=</span><span class="pln"> html</span><span class="pun">.</span><span class="typ">Match</span><span class="pun">(</span><span class="pln">pattern</span><span class="pun">,</span><span class="pln"> </span><span class="str">"mypage"</span><span class="pun">);</span><span class="pln">
               </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> mypage</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">IsNullOrEmpty</span><span class="pun">(</span><span class="pln">mypage</span><span class="pun">))</span><span class="pln"> </span><span class="kwd">throw</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Exception</span><span class="pun">(</span><span class="str">"获取微博话题列表失败"</span><span class="pun">);</span><span class="pln">
               pattern </span><span class="pun">=</span><span class="pln"> </span><span class="pun">@</span><span class="str">"boss=""btnWideSideMyNick"">(?'nick'[^<]*)</a>"</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> nick </span><span class="pun">=</span><span class="pln"> html</span><span class="pun">.</span><span class="typ">Match</span><span class="pun">(</span><span class="pln">pattern</span><span class="pun">,</span><span class="pln"> </span><span class="str">"nick"</span><span class="pun">);</span><span class="pln">
               </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">html</span><span class="pun">.</span><span class="typ">Contains</span><span class="pun">(</span><span class="str">"立即开通"</span><span class="pun">))</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">CurrentStatus</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">.</span><span class="typ">NotRegist</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Nick</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> nick</span><span class="pun">;</span><span class="pln">
               html </span><span class="pun">=</span><span class="pln"> </span><span class="str">"成功获取微博话题列表"</span><span class="pun">;</span><span class="pln">
           </span><span class="pun">}</span><span class="pln">
           </span><span class="kwd">catch</span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln">
           </span><span class="pun">{</span><span class="pln">
               html </span><span class="pun">=</span><span class="pln"> e</span><span class="pun">.</span><span class="typ">Message</span><span class="pun">;</span><span class="pln">
           </span><span class="pun">}</span><span class="pln">
           </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">List</span><span class="pun"><</span><span class="typ">FriendInfo</span><span class="pun">></span><span class="pln"> </span><span class="typ">GetQQFriendList</span><span class="pun">()</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> account </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> r </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1351620387406"</span><span class="pun">;</span><span class="pln">
           account </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pun">.</span><span class="typ">ToLower</span><span class="pun">().</span><span class="typ">Replace</span><span class="pun">(</span><span class="str">"http://t.qq.com/"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"http://api.t.qq.com/share/qqList.php?account={0}&r={1}&apiType=8&apiHost=http://api.t.qq.com&_r={1}"</span><span class="pun">,</span><span class="pln">
                                                account</span><span class="pun">,</span><span class="pln">r</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pun">;</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">ExtendHeadData</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"rf:{0}"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">;</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">ExtendHeadData</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">;</span><span class="pln">
           </span><span class="typ">Regex</span><span class="pln"> regex </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Regex</span><span class="pun">(@</span><span class="str">"(""sortId"":(?'sordId'[^""]+),)*""name"":""(?'name'[^""]+)"",(""groupId"":(?'groupId'[^,]+),)*(""member"":(?'member'\[[^\]]*\]))*"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">RegexOptions</span><span class="pun">.</span><span class="typ">IgnoreCase</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">MatchCollection</span><span class="pln"> matches </span><span class="pun">=</span><span class="pln"> regex</span><span class="pun">.</span><span class="typ">Matches</span><span class="pun">(</span><span class="pln">html</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">List</span><span class="pun"><</span><span class="typ">FriendInfo</span><span class="pun">></span><span class="pln"> list </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">List</span><span class="pun"><</span><span class="typ">FriendInfo</span><span class="pun">>();</span><span class="pln">
           </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun"><</span><span class="pln"> matches</span><span class="pun">.</span><span class="typ">Count</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln">
           </span><span class="pun">{</span><span class="pln">
                
               </span><span class="kwd">string</span><span class="pln"> sortId </span><span class="pun">=</span><span class="pln"> matches</span><span class="pun">[</span><span class="pln">i</span><span class="pun">].</span><span class="typ">Groups</span><span class="pun">[</span><span class="str">"sortId"</span><span class="pun">].</span><span class="typ">Value</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> name </span><span class="pun">=</span><span class="pln"> matches</span><span class="pun">[</span><span class="pln">i</span><span class="pun">].</span><span class="typ">Groups</span><span class="pun">[</span><span class="str">"name"</span><span class="pun">].</span><span class="typ">Value</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> groupId </span><span class="pun">=</span><span class="pln"> matches</span><span class="pun">[</span><span class="pln">i</span><span class="pun">].</span><span class="typ">Groups</span><span class="pun">[</span><span class="str">"groupId"</span><span class="pun">].</span><span class="typ">Value</span><span class="pun">;</span><span class="pln">
               </span><span class="kwd">string</span><span class="pln"> member </span><span class="pun">=</span><span class="pln"> matches</span><span class="pun">[</span><span class="pln">i</span><span class="pun">].</span><span class="typ">Groups</span><span class="pun">[</span><span class="str">"member"</span><span class="pun">].</span><span class="typ">Value</span><span class="pun">;</span><span class="pln">
               </span><span class="typ">Regex</span><span class="pln"> memberRegex </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Regex</span><span class="pun">(@</span><span class="str">"""qq"":""(?'qq'[^""]*)"",""pic"":null,""nick"":""(?'nick'[^""]*)"""</span><span class="pun">,</span><span class="pln"> </span><span class="typ">RegexOptions</span><span class="pun">.</span><span class="typ">IgnoreCase</span><span class="pun">);</span><span class="pln">
               </span><span class="typ">MatchCollection</span><span class="pln"> memberMatches </span><span class="pun">=</span><span class="pln"> memberRegex</span><span class="pun">.</span><span class="typ">Matches</span><span class="pun">(</span><span class="pln">member</span><span class="pun">);</span><span class="pln">
               </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> j </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> j </span><span class="pun"><</span><span class="pln"> memberMatches</span><span class="pun">.</span><span class="typ">Count</span><span class="pun">;</span><span class="pln"> j</span><span class="pun">++)</span><span class="pln">
               </span><span class="pun">{</span><span class="pln">
                   </span><span class="kwd">string</span><span class="pln"> qq </span><span class="pun">=</span><span class="pln"> memberMatches</span><span class="pun">[</span><span class="pln">j</span><span class="pun">].</span><span class="typ">Groups</span><span class="pun">[</span><span class="str">"qq"</span><span class="pun">].</span><span class="typ">Value</span><span class="pun">;</span><span class="pln">
                   </span><span class="kwd">string</span><span class="pln"> nick </span><span class="pun">=</span><span class="pln"> memberMatches</span><span class="pun">[</span><span class="pln">j</span><span class="pun">].</span><span class="typ">Groups</span><span class="pun">[</span><span class="str">"nick"</span><span class="pun">].</span><span class="typ">Value</span><span class="pun">;</span><span class="pln">
                   </span><span class="typ">FriendInfo</span><span class="pln"> friendInfo </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">FriendInfo</span><span class="pun">();</span><span class="pln">
                   friendInfo</span><span class="pun">.</span><span class="typ">Uin</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> qq</span><span class="pun">;</span><span class="pln">
                  friendInfo</span><span class="pun">.</span><span class="typ">Name</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">WebQQ</span><span class="pun">.</span><span class="typ">Converter</span><span class="pun">.</span><span class="typ">Unicode_js_1</span><span class="pun">(</span><span class="pln">name</span><span class="pun">);</span><span class="pln">
                  
                   friendInfo</span><span class="pun">.</span><span class="typ">Nick</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">WebQQ</span><span class="pun">.</span><span class="typ">Converter</span><span class="pun">.</span><span class="typ">Unicode_js_1</span><span class="pun">(</span><span class="pln">nick</span><span class="pun">);</span><span class="pln">
                   </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">friendInfo</span><span class="pun">.</span><span class="typ">Name</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">"最近联系人"</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">continue</span><span class="pun">;</span><span class="pln">
                   friendInfo</span><span class="pun">.</span><span class="typ">SortId</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> sortId</span><span class="pun">;</span><span class="pln">
                   friendInfo</span><span class="pun">.</span><span class="typ">GroupId</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> groupId</span><span class="pun">;</span><span class="pln">
                   friendInfo</span><span class="pun">.</span><span class="pln">QQ </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Uin</span><span class="pun">;</span><span class="pln">
                    list</span><span class="pun">.</span><span class="typ">Add</span><span class="pun">(</span><span class="pln">friendInfo</span><span class="pun">);</span><span class="pln">
 
               </span><span class="pun">}</span><span class="pln">
 
 
           </span><span class="pun">}</span><span class="pln">
           </span><span class="kwd">return</span><span class="pln"> list</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span>

上面这一步不一定是必须的,但是没有这一步,我们后面所要实现的功能就会很困难。包括发送分享给QQ,这一步,因为要发送的QQ好友的号码不是真正的号码,而是一个系统随机生成的好友序列号的MD5加密字段。因此,我们也无法用于分享QQ给陌生人号码。

4.分享

<span class="com">#region 分享</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">MailShare</span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> shareId</span><span class="pun">,</span><span class="kwd">string</span><span class="pln"> toList</span><span class="pun">,</span><span class="kwd">string</span><span class="pln"> subject</span><span class="pun">,</span><span class="kwd">string</span><span class="pln"> reason</span><span class="pun">)</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url</span><span class="pun">,</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
           url </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/mail/mailShare.php"</span><span class="pun">;</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">ExtendHeadData</span><span class="pln"> </span><span class="pun">=</span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"rf:{0}"</span><span class="pun">,</span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/proxy.html"</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> mail </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Mail</span><span class="pun">));</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> maillist </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="pln">toList</span><span class="pun">));</span><span class="pln">
            subject </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="pln">subject</span><span class="pun">));</span><span class="pln">
            reason </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="pln">reason</span><span class="pun">));</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> postString </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"mailAddr={0}&mlist={1}&subject={2}&body={3}&reason={4}&apiType=8&apiHost=http://api.t.qq.com"</span><span class="pun">,</span><span class="pln">
                                           mail</span><span class="pun">,</span><span class="pln">toList</span><span class="pun">,</span><span class="pln">subject</span><span class="pun">,</span><span class="pln">shareId</span><span class="pun">,</span><span class="pln">reason</span><span class="pun">);</span><span class="pln">
           html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> postString</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">;</span><span class="pln">
 
           </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">ShareQZone</span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> shareId</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> reason</span><span class="pun">)</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/share/shareQzone.php"</span><span class="pun">;</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">ExtendHeadData</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"rf:{0}"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/proxy.html"</span><span class="pun">;</span><span class="pln">
           reason </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="pln">reason</span><span class="pun">));</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> postString </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"id={0}&reason={1}&apiType=8&apiHost=http://api.t.qq.com"</span><span class="pun">,</span><span class="pln">shareId</span><span class="pun">,</span><span class="pln">reason</span><span class="pun">);</span><span class="pln">
          </span><span class="kwd">string</span><span class="pln"> html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> postString</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">ShareMsg</span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> shareId</span><span class="pun">,</span><span class="kwd">string</span><span class="pln"> uins</span><span class="pun">,</span><span class="kwd">string</span><span class="pln"> </span><span class="kwd">group</span><span class="pun">)</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/share/shareMsg.php"</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> postString </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"id={0}&uins={1}&group={2}&apiType=8&apiHost=http://api.t.qq.com"</span><span class="pun">,</span><span class="pln">
                                   shareId</span><span class="pun">,</span><span class="pln">uins</span><span class="pun">,</span><span class="kwd">group</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">ExtendHeadData</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"rf:{0}"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">MyPage</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/proxy.html"</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> postString</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">Referer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pun">;</span><span class="pln">
           </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
       </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="typ">Pm_Mgr</span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> content</span><span class="pun">,</span><span class="kwd">string</span><span class="pln"> target</span><span class="pun">)</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.t.qq.com/inbox/pm_mgr.php"</span><span class="pun">;</span><span class="pln">
           content </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="pln">content</span><span class="pun">));</span><span class="pln">
           target </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpUtility</span><span class="pun">.</span><span class="typ">UrlEncode</span><span class="pun">(</span><span class="typ">Encoding</span><span class="pun">.</span><span class="pln">UTF8</span><span class="pun">.</span><span class="typ">GetBytes</span><span class="pun">(</span><span class="pln">target</span><span class="pun">));</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> postString </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"source=&ptid=&roomid=&content={0}&fid=&arturl=&murl=&target={1}&func=send&ef=js&pmlang=zh_CN&apiType=8&apiHost=http://api.t.qq.com"</span><span class="pun">,</span><span class="pln">
                                  content</span><span class="pun">,</span><span class="pln">target</span><span class="pun">);</span><span class="com">//wuwenjun20102008,niefeng101</span><span class="pln">
           </span><span class="kwd">string</span><span class="pln"> html </span><span class="pun">=</span><span class="pln"> </span><span class="typ">HttpHelper</span><span class="pun">.</span><span class="typ">GetHtml</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln">postString</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">WeiboCookieContainer</span><span class="pun">);</span><span class="pln">
           </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">;</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
      </span><span class="com">#endregion</span>

当然,给大家分享上面的分析结果不是让大家去干一些让人讨厌的事(大家都懂的),仅仅是为那些爱好Http协议模拟的提供参考的方便。如果有和我一样对这方面有共同爱好,请继续关注本人的博客
教程每天都更新,欢迎继续关注!
本文属于原创文章,转载请保持http://www.cnblogs.com/uu102的链接 如果违法上述规定,本人将保留追究转载者的权利.谢谢合作

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册