2017-02-01 5 views
0

私はサイトのopskinsのボタンをC#アプリで押してみようとしています。私は、ブラウザでそれを押すと、シオマネキは私に次のC#(.NET)、認証付きhttp Webリクエスト(postメソッド)。とクッキー

enter image description here

を与える

...私はそのための十分な経験を持っていないので、私は、私はなど、愚かなミスをし、余分なヘッダを追加すると思います私のコード

string username = textBox2.Text; 
string password = textBox3.Text; 
string userData = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password)); 

/*Add Auth Header*/ 
string referer = "https://opskins.com/?loc=shop_checkout"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(referer); 

/*Cookie and spec. Headers*/ 
request.Headers.Add("Cookie", "Cookie string from Fiddler here"); 
request.Headers.Add("X-OP-UserID", "2484329"); 
request.Headers.Add("X-CSRF", "2kXrd2qBf4eFxW1O6tM2ye3DELn4SJzDH"); 

request.Headers.Add("Authorization", "Basic" + userData); 
string fData = "action=buy&hidden_bal=0&total=" + textBox1.Text + "&accept_tos=1&type=2"; 
byte[] eData = Encoding.UTF8.GetBytes(fData); 

request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"; 
request.ContentLength = eData.Length; 

using (var stream = request.GetRequestStream()) 
{ 
stream.Write(eData, 0, eData.Length); 
} 

私のアプリが実行されている、シオマネキ私

enter image description here

0123を与えます

まだ動作しません。修正する必要がありますか、コードに追加する必要がありますか? 誰かが私のサイトの1つのボタン(C#のみ)を押すより簡単な方法を教えてくれますか?

+0

ネットライブラリは、チャンクモードであるhttp1.1をサポートしていません。チャンクでは、クライアントは次のチャンクを要求しなければならず、HttpWebRequestを使用して新しいチャンクを発行する方法はありません。代わりにhttp1.0を使用します:request.ProtocolVersion = HttpVersion.Version10; – jdweng

+0

このHTTP 2.0ライブラリをC#https://github.com/Redth/HttpTwo – Mangist

答えて

0

フィドラーによると、リクエストのコンストラクタ内のURLは"https://opskins.com/ajax/shop_buy_item.php";

はあなたのクッキーを隠しておくと、あなたがリクエストで送信するクッキーのそれぞれを追加するためにCookieContainerを使用するようにしてくださいする必要があります。それはまだ動作しない場合、私はあなたのウェブリクエストに最初のフィドラー要求からヘッダの残りの部分を追加することをお勧めしたい、request.Referer = referer

request.CookieContainer = new CookieContainer(); 
request.CookieContainer.Add(new URI("https://opskins.com"), new Cookie(key, value); 

はまた、このヘッダを追加します。

+0

[こちらの画面](https://pp.vk.me/c837722/v837722394/202e3/y7J5tXyfOHU.jpg)、404 :(どうすれば可能ですか? –

+0

あなたの最初のFiddlerリクエスト、つまり 'X-Requested-With'のヘッダーがまだありません。これらのエラーを除外するには、元のFiddlerリクエストと同じリクエストをしてください。 'request.Headers.Add(headerName、headerValue)' まだ404を取得した場合、有効期限切れに設定されている場合は、クッキー値を更新することがあります。 –

+0

Bro、You're awsome! –

関連する問題