導航:首頁 > 源碼編譯 > 根據源碼確定post參數

根據源碼確定post參數

發布時間:2022-12-27 23:21:31

Ⅰ 如何在WebBrowser控制項中獲取post參數

如何在WebBrowser控制項中獲取post參數?就像獲取cookie一樣。
WebBrowser本身有沒有辦法?
如果沒有,能不能通過其它辦法?就像httplook,HttpSniffer一樣截取http協議包,然後分析,有

沒有這方面的例子?估計要用到API,但不知道怎麼樣實現的。

網頁與應用程序的交互不外乎是網頁上點擊某鏈接,或通過其它途徑,比如表單提交等,使瀏覽器

導航至新的鏈接,所以我通過BeforeNavigate2這個事件來,該事件有flags、headers、postData、

targetFrameName、uRL等屬性,足夠我們進行處理。這樣我們程序就好像一個WebServer,可以處理

網頁上的鏈接、提交的表單等等。然後把使瀏覽器導航至處理後產生的結果網頁。
又在網上看到有人用System.Runtime.InteropServices.Expando.IExpando:
mshtml.HTMLDocumentClass doc2=(mshtml.HTMLDocumentClass)webBrowser.Document;
System.Runtime.InteropServices.Expando.IExpando ex=

(System.Runtime.InteropServices.Expando.IExpando)doc2;
System.Reflection.PropertyInfo piform1=ex.AddProperty( "Form1 ");
piform1.SetValue(doc2,this,null);
這樣,在網頁中的document.Form1就是這個WinForm的Control了。你可以用腳本來調用Form1!

這也不失為一個極妙的方法。

----------------------------

如何獲得webBrowser中POST的數據
http://msdn2.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.document.aspx

//引用 shdocvw.dll
(this.webbrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow2 += new

SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(NewWindow2);

----------------------------------------
System.Web.HttpUtility.UrlEncode(viewState);

// 將提交的字元串數據轉換成位元組數組
byte[] postData = Encoding.ASCII.GetBytes(postString);
byte[] bytes = Encoding.Default.GetBytes(Parameters);

----------------------------------------

HttpWebRequest發送自定義POST請求

平時用瀏覽器看網頁的時候,點擊一下submit按鈕的時候其實就是給伺服器發送了一個POST請求。

但是如何在自己的C#程序裡面實現類似的功能呢?本文給出了一個簡單的範例,可以實現類似的和

web server之間的POST通訊。通過程序發送POST的過程如下所示:
1. 創建httpWebRequest對象
HttpWebRequest不能直接通過new來創建,只能通過WebRequest.Create(url)的方式來獲得。
WebRequest是獲得一些列應用層協議對象的一個統一的入口(工廠模式),它根據參數的協議來確

定最終創建的對象類型。所以我們的程序裡面有一個對返回對象的類型進行測試的過程。
2. 初始化HttpWebRequest對象
這個過程提供一些http請求常用的屬性:agentstring,contenttype等其中agentstring比較有意思

,它是用來識別你用的瀏覽器名字的,通過設置這個屬性你可以欺騙伺服器你是一個IE,firefox甚

至是mac裡面的safari。很多認真設計的網站都會根據這個值來返回對用戶瀏覽器特別優化過的代碼


3. 附加要POST給伺服器的數據到HttpWebRequest對象
附加POST數據的過程比較特殊,它並沒有提供一個屬性給用戶存取,需要寫入HttpWebRequest對象

提供的一個stream裡面。
4. 讀取伺服器的返回信息
讀取伺服器返回的時候,要注意返回數據的encoding。如果我們提供的解碼類型不對會造成亂碼。

比較常見的是utf-8和gb2312之間的混淆,據我測試,國內的主機一般都是gb2312編碼的。一般設計

良好的網站會把它編碼的方式放在返回的http header裡面,但是也有不少網站根本沒有,我們只能

通過一個對返回二進制值的統計方法來確定它的編碼方式。
------------------------------------------

基於HTTP協議的客戶/伺服器模式的信息交換過程,它分四個過程:建立連接、發送請求信息、發送

響應信息、關閉連接。這就好像上面的例子,我們電話訂貨的全過程。

HTTP協議採用了請求/響應模型。客戶端向伺服器發送一個請求,請求頭包含請求的方法、URI、協

議版本、以及包含請求修飾符、客戶信息和內容的類似於MIME的消息結構。伺服器以一個狀態行作

為響應,相應的內容包括消息協議的版本,成功或者錯誤編碼加上包含伺服器信息、實體元信息以

及可能的實體內容。

---------------------------------
POP3(Post Office Protocol 3)即郵局協議的第3個版本,它規定怎樣將個人計算機連接到Internet

的郵件伺服器和下載電子郵件的電子協議。它是網際網路電子郵件的第一個離線協議標准,POP3允許用

戶從伺服器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件伺服器上的郵件,

而POP3伺服器則是遵循POP3協議的接收郵件伺服器,用來接收電子郵件的。
pop3是接收電子郵件協議,屬於TCP/IP協議族中的成員。 smtp是發送電子郵件協議。 當你使用

Email時就離不開他們

Ⅱ 京東post登陸參數js分析,密碼加密的RSA加密實現

老規矩先用錯誤信息登陸一下抓一下包,看看有那些post欄位:

大概我們就知道我們要分析的欄位有nloginpwd其餘欄位還不清楚,就在上下在看看其他數據包,根據pubkey我們猜測加密方式大概是RSA,繼續查看其他數據包,找到一個有價值的get包

信息是:

沒有發現明確的關鍵字,但是可以猜想bg、challenge、patch應該和我們的加密參數相關,但是不確定,只有繼續分析加密的js片段:

其中好幾個欄位都是$("#??")格式,這種表示是來自頁面的,那在看看網頁源碼

果然發現了很多有價值的東西在post表單中的,其中只有兩個參數是需要單獨獲取的,其餘都是從html源碼裡面解析出來的

authcode來源

是獲取的源碼中的一個值,再看源碼

看樣子是在驗證碼操作的時候觸發的一個請求,返回的authcode的值,查看authcode請求的數據包

這個請求看起來不是那麼友好,有好幾個疑似加密欄位,這個參數暫時放放,繼續分析我們的passWord的加密。

繼續深入getEntryptPwd($('#nloginpwd').val()),查看源碼

核心的就兩行

encrypt.setPublicKey(pubKey); return encrypt.encrypt(pwd);這必定是RSA加密無疑了,繼續查看源碼,單獨的一個源碼文件,一共3300多行,刪減版如下

JSEncrypt是前端使用的實現RSA加密的庫,看樣子應該比較標准,那就試試能不能改寫了,復制全部源碼到node.js,會提示navigator、window未定義,這個問題很簡單,在文件頭定義

var navigator = this;

var window = this

然後在文件尾部寫個調用程序試試

是可以成功返回RSA加密結果的

京東的post請求不是太難,參數也能在源碼中找到,但是他的難度在發出post請求之前的一個get請求,這個get請求和驗證有關,和用戶名相關,簡單看了一下感覺有點復雜,留在第二篇講獲取authcode參數的其他參數是怎麼來的。

ID:python之戰

|作|者|公(zhong)號:python之戰

專注Python,專注於網路爬蟲、RPA的學習-踐行-總結

喜歡研究和分享技術瓶頸,歡迎關注

獨學而無友,則孤陋而寡聞!

Ⅲ html中的js如何獲取通過POST方法傳遞過來的參數

可以通過解析url路徑,獲取參數:

function getURLParameter(name) {

return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/+/g, '%20'))||null;

}

var orgid = getURLParameter('orgid');

var orglevel = getURLParameter('orglevel');

console.log('orgid='+orgid);

console.log('orglevel='+orglevel);

(3)根據源碼確定post參數擴展閱讀

html中通過url地址傳參及獲取參數:

var url = document.location.toString();//獲取url地址

var urlParmStr = url.slice(url.indexOf('?')+1);//獲取問號後所有的字元串

var arr = urlParmStr.split('&');//通過&符號將字元串分割轉成數組

var courseId = arr[0].split("=")[1];//獲取數組中第一個參數

var unit_title=arr[1].split("=")[1];//第二個參數

unit_title=decodeURI(unit_title);//轉碼將解碼方式unscape換為decodeURI,將中文參數獲取

console.log(unit_title);

Ⅳ 關於php中POST傳遞參數問題

將數據轉換成 json 格式的字元串, 並通過 CURL 的 POST 的形式傳遞參數給服務端, 但是在服務端無法用 $_POST 獲取到數據。後台用 $_POST 獲取到的信息為空, 但是可以通過 $post = file_get_contents("php://input") 獲取到請求的相關信息。

Coentent-Type 的值為 application/x-www-data-urlencode 和 multipart/form-data 時, php才會將http請求數據包中的數據填進 $_POST 。

如果 POST 的原始數據是一維數組或&拼接的標准格式的鍵值對字元串,那麼可以用 $_POST 來獲取。
如果要通過 file_get_contents 獲取,這種情況下可以發送 json 字元串,用 json_encode 編碼轉換一下,或者使用 http_build_query 。

1、 區別 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input
2、 accept 和 content-Type區別
3、 Http Header里的Content-Type

Ⅳ idea測試post請求帶參數

創建類PostParameter

//post通過body傳參(配和post_text.html)
@WebServlet("/postparameter")
public class PostParameter extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//防止返回的結果亂碼
resp.setContentType("text/html;charSet=utf-8");
//得到請求參數的值
String post = req.getParameter("s");
//返回結果
resp.getWriter().println("post傳參結果:" + post);

}
}
復制

創建post_text.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用post——get得參數</title>
</head>
<body>

<form action="postparameter" method="post">
<div style="margin-top:50px;margin-left:40%;">
<h1 style="padding-left:50px;">post傳參</h1>
參數:<input type="text" name="s">
<input type="submit" value=" 提 交 ">

</div>
</form>

</body>
</html>

結果:可以看到傳入的數據
獲取 POST 請求中的參數(2)
1.如果 POST 請求中的 body 是按照 JSON 的格式來傳遞, 那麼通過 getParameter 就獲取不到參數的值了!!!

類還是上面的PostP

Ⅵ 修改網頁源碼VC 編程實現在本地修改網頁源代碼,同時保證POST提交數據有效

一般情況下,使用Ajax提交的參數多是些簡單的字元串,可以直接使用GET方法將要提交的參數寫到open方法的url參數中,此時send方法的參數為null。例如 :!--[if !supportLists]-->1 !--[endif]-->var url = login.jsp?user=XXX&pwd=XXX;!--[if !supportLists]-->2 !--[endif]-->xmlHttpRequest.open(GET,url,true);!--[if !supportLists]-->3 !--[endif]-->xmlHttpRequset.send(null);
此外,也可以使用send方法傳遞參數。使用send方法傳遞參數使用的是POST方法,需要設定Content-Type頭信息,模擬HTTP POST方法發送一個表單,這樣伺服器才會知道如何處理上傳的內容。參數的提交格式和GET方法中url的寫法一樣。設置頭信息前必須先調用open方 法。 例如:!--[if !supportLists]-->1 !--[endif]-->xmlHttpRequest.open(POST,login.jsp,true);!--[if !supportLists]-->2 !--[endif]-->xmlHttpRequest.setRequestHeder(Content-Type,application/x--form-urlencoded;charset=UTF-8);!--[if !supportLists]-->3 !--[endif]-->xmlHttpRequest.send(user=+username+&pwd=+password);
需要注意的是根據提交方式的不同,兩種提交方式分別調用後台的doGet方法和doPost方法。

Ⅶ 關於php獲取post值的問題!

在php的配置文件里,有一個開關叫做:register_globals,如果是on,則post提交以後,直接用$欄位,就可以取到post的值了,出於安全性考慮,這個開關在新版的php里默認是關閉的,當這個開關是關閉的時候,你可以用以下的代碼來模擬這個效果:
if(!ini_get('register_globals')){
extract($_POST);
extract($_GET);
}

Ⅷ c#從post中獲取參數

<input type="text" ID="PHONE" runat="server"/>
再加個name="PHONE" 。post的提交需要name屬性的。應該是。

java post請求參數怎麼寫

//serverURL url地址
HttpPost httpPost = new HttpPost(serverURL);
//param 為參數
StringEntity entity = new StringEntity(param);
entity.setContentType("application/x-www-form-urlencoded");
httpPost.setEntity(entity);
HttpResponse httpResponse = httpClient.execute(httpPost);

還可以用map作為參數
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
if(param!=null){
Set set = param.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
Object value = param.get(key);
formparams.add(new BasicNameValuePair(key.toString(), value.toString()));
}
}

Ⅹ httpclient中post參數設置

// post Sent cookie 這個Post 發送去的Cookie
HttpPost httpPost = new HttpPost(uri)
httpPost.addHeader("Cookie", "ONE_VER=1_0");

//下面是發送的實體內容。發出去的是被轉義的內容,如果是不轉義發送,我也不知道怎麼發,請高手指教。
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("實體內容", ""));

//下面是返回內容
CloseableHttpResponse response = httpclient.execute(httpPost);
try{
//要運行內容,如果要處理接收的內容,請在這里寫。

} finally {
response.close();

}

閱讀全文

與根據源碼確定post參數相關的資料

熱點內容
好興動app還款怎麼登錄不上去了 瀏覽:665
鄭州雲伺服器託管 瀏覽:720
伺服器地址跟蹤 瀏覽:978
免費google雲伺服器 瀏覽:516
摘譯和編譯的英文 瀏覽:359
熱泵壓縮機選型 瀏覽:121
op手機微信加密如何解除 瀏覽:386
如何在王牌戰爭找到高爆率伺服器 瀏覽:13
江浙小學語文輔導課用什麼APP 瀏覽:99
新夢幻大陸伺服器地址 瀏覽:241
網吧伺服器怎麼更換壁紙 瀏覽:530
linux命令方法 瀏覽:332
linux下載freetype 瀏覽:123
程序員入駐平台 瀏覽:327
程序員大戰外掛 瀏覽:745
html實例教程pdf 瀏覽:157
linux命令開放所有許可權 瀏覽:575
30歲能學會編程 瀏覽:737
小火箭的伺服器是什麼 瀏覽:967
cad查信息命令 瀏覽:402