2017-06-13 10 views
1

特定のURLにajaxリクエストがあるかどうかを確認しようとしています。そうであれば、リクエストにCookieを追加しようとしています。HttpListnerがリッスンしていない

しかし、私のHttpListnerは、localhostしか聞いていません。私が他のURLを出そうとすると、それは聞こえません。

ファイアウォールもオフにしていますが、同じ問題です。

私が間違っている箇所を教えてください。以下は

私のコードです:

class Program 
{ 
    static void Main(string[] args) 
    { 
     HttpListener listner = new HttpListener(); 
     listner.Prefixes.Add("<my url>");//For example, https://www.google.co.in/ 
     listner.Start(); 
     HttpListenerContext context = listner.GetContext(); 

     HttpListenerRequest request = context.Request; 
     WebRequest webReq = WebRequest.Create(request.Url); 

     //Copying the headers 
     System.Collections.Specialized.NameValueCollection headers = request.Headers; 
     for (int i = 0; i < headers.AllKeys.Length; i++) 
     { 
      if (!WebHeaderCollection.IsRestricted(headers.AllKeys[i])) 
      { 
       webReq.Headers.Add(headers.AllKeys[i], headers[headers.AllKeys[i]]); 
      } 
     } 

     webReq.ContentLength = request.ContentLength64; 
     webReq.ContentType = request.ContentType; 
     webReq.Headers.Add(HttpRequestHeader.Cookie, "<My Cookie>"); 


     HttpListenerResponse response = context.Response; 
     WebResponse webResponse = webReq.GetResponse(); 
     webResponse.GetResponseStream().CopyTo(response.OutputStream); 

    } 
} 
+0

私は、httplistenerがウェブサーバーなどを作るためのものだと確信しています。 GoogleにURLを設定すると、「googleに入ってくるWebリクエストを処理したい」という意味になりますが、これは起こりません。あなたはそれで何をしようとしていますか? – James

+0

$ .ajaxを使用してクロスソース要求を送信しようとすると、ブラウザは要求を認証するCookieを削除しています。だから、私はリクエストを傍受し、ヘッダを追加して送信するプロキシを作成しています。 – Karthik

+0

私のマシンからgoogle(例)に行くウェブリクエストを処理したい – Karthik

答えて

1

あなたがリスナーに追加どのような接頭辞ローカルホストマシンに解決しなければなりません。 DNSサーバーがコードを実行するマシンにホストを正しく解決することを確認します。

これを開発環境でテストしている場合、またはDNSサーバーを制御できない場合は、使用するホスト名をローカルマシンにマップするエントリをhostsファイルに追加します。

注意しなければならないのはポートです。あなたが使用しようとしているポートで何も聞いていないことを確認してください。

+0

"https://google.com/"を聞いている場合、リスナーは起動しません。 – Karthik

+0

ホスト名の解決方法を理解する必要があります。ローカルのHostsファイルに、ドメインGoogle.comがローカルマシンを指すエントリを追加することで、DNS解決を無効にすることができます。その後、リクエストはローカルリスナーにルーティングされます。これを読んでください:https://www.verisign.com/en_US/website-presence/online/how-dns-works/index.xhtml – JuanR

+0

これも読んでください:http://www.lifeasasysadmin.com/how- to-use-hosts-file-to-override-dns-for-local-testing / – JuanR

関連する問題