廢話少說,下面的東西就在倆個小時內完成了。
一、首先我們要提到模擬登入微博通,我用fiddler檢視了下,發現登入走下面三個流程:
下面來上**,完成上面的描述,很簡單,如下:
(1 )我們先定義乙個全域性變數:
private static cookiecontainer cc = new cookiecontainer();
(2 )模擬第乙個post請求:
/// /// 模擬post請求
///
/// 返回的cookie
/// 使用者暱稱/郵箱
/// 使用者登入密碼
///
public void simulatepost(string nick,string password, out string url,out string cookie)
&password=&cookietime=2592000";
postdata = string.format(postdata, nick, password); //拼裝資料
string loginurl = ""; //登入位址
#region 資訊頭
#region 提交資料並返回cookie
cookie = req.cookiecontainer.getcookieheader(req.requesturi); //字串形式的cookie跟你在瀏覽器看到的一樣
streamreader stre = new streamreader(rep.getresponsestream(), encoding.getencoding("utf-8"));
#endregion
string html = stre.readtoend();
url = html.substring(html.indexof("src=\"") + 5, (html.indexof("\"", html.indexof("src=\"") + 5) - html.indexof("src=\"") - 5));
rep.close();
stream.close();
}catch
if (stream != null)
url = null;
cookie = null;}}
(3) 模擬第二個請求:
/// /// 模擬get請求
///
/// 請求位址
/// cookie物件
/// cookie字串
/// host,可選
/// 新的cookie字串
///
public string simulateget(string url, cookiecontainer cookie,string cookiestr, string host,out string newcookie)
catch
if (st != null)
newcookie = null;
}return json;
}
這裡講一下,當我們第二個請求完成後,我前面講過cookie已經完全角成了,這個時候你拿著這個cookie就可以訪問任何乙個頁面了,所以聰明的你會發現,第二個方法是通用的,你可以接著用他請求其他的位址,只要傳入正確的請求位址和cookie字串即可。
下面貼上最後一段**,是我測試用的,如下:
結束:搞定。這個只是乙個簡單的寫法,各位朋友看著改即可。
模擬新浪微博
1.專案效果圖 主要 如下 android layout width match parent android layout height match parent android padding 10dip android orientation vertical 2 獲取xml資源 在andro...
騰訊空間 新浪微博 騰訊微博登入介面
1 引用js檔案 2 html 3 js指令碼 document ready function 第三方平台登入 var tpalogin 儲存登入使用者資訊 param 引數重置 paramreset function qq空間 qzone function function reqdata,opt...
新浪微博passport登入原理
1.首先請求位址 不同js版本位址可能不同 傳送的引數主要包括加密的原始引數 加密後的使用者名稱 密碼以及一些入口資訊等,使用者名稱 密碼的加密方法可以通過檢視js看到 client指定的是客戶端使用的哪個js進行引數處理 1.請求以後 2.如果登入成功以後,獲取跨域的url 3.執行跨域url f...