2012-02-16 10 views
1

私は価値の未URLエンコードすることができます「URL」クエリ文字列のキーを受け付けasp.net以下のページがあります。このページから、今エンコードされていないデータが含まれている場合にクエリ文字列を読み取る方法は?

http://localhost:4104/WebSiteForTest/TinyUrl.aspx?url=http://www.google.co.uk/#hl=en&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=2803373l2803701l2l2803826l4l4l0l0l0l0l188l453l0.3l3l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=883 

を、どのようにそれは、テキストを読むことが可能になります".aspx?"の後に?

私はRequest.Url.AbsoluteUriプロパティをチェックし、それは私だけでも、以下のコードで場合、Request.QueryStringで確認

"http://localhost:4104/WebSiteForTest/TinyUrl.aspx?url=http://www.google.co.uk/" 

を示した: "の後のコード、しかし

private void getQueryString() 
    { 
     var sb = new StringBuilder(); 

     var queryStringCount = Request.QueryString.Keys.Count; 

     for (int keyIndex = 0; keyIndex < queryStringCount; keyIndex++) 
     { 
      sb.Append(Request.QueryString.Keys[keyIndex]).Append("=").Append(Request.QueryString[keyIndex]); 
      if (keyIndex != (queryStringCount - 1)) 
      { 
       sb.Append("&"); 
      } 
     } 
    } 

# "はどのクエリ文字列にも現れません。

".aspx?"の後のテキストをどのように読み取ることができますか?

あなたが何かを検索するときにGoogleがURLに "#"をどのように使用するのかをあなたが言うならば、取得します

http://www.google.co.uk/#hl=en&site=&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=3317l3630l0l3755l4l4l0l0l0l0l125l391l3.1l4l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=849

おかげで、

+0

クエリ文字列のパラメータには、エンコードされていないデータが含まれていますか? – Jodrell

+0

'str.Split("? "、2)[1]' –

+0

@ Jodrell。 http://www.google.co.uk/#hl=en&site=&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=3317l3630l0l3755l4l4l0l0l0l0l125l391l3.1l4l0&bav=on.2,or.r_gc.r_pw.r_cp。、 cf.osb&fp = 94681dc4659502d1&biw = 1680&bih = 849 –

答えて

0

使用Request.QueryString

http://localhost:4104/WebSiteForTest/TinyUrl.aspx?url=http://www.google.co.uk/#hl=en&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=2803373l2803701l2l2803826l4l4l0l0l0l0l188l453l0.3l3l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=883 

<%=Request.QueryString("url")%>?urlパラメータ

+0

はありません。それまで#を取得するだけです。 –

+0

この動作は設計上のもので、ブラウザはアンカーの後にすべてをカットします。私の答えは –

+0

ですが、それは当てはまりません.Googleのリンクを参照してください。 –

0

あなたはこれを行うためにC#を使用していると仮定します。リクエストオブジェクトを反復処理することで、パラメータとその値を簡単に取得できます。または、この場合、パラメータの名前を知っているので、次のようにしてください:

String url = Request.QueryString ["url"];

詳細情報iterating through your request parameters can be found here

+0

私が言ったように、#の後のテキストはRequest.QueryStringのキーとして表示されません。 –

0

Uriタイプも同様に動作します。

String yourHttpUri ="...."; 
Uri yourURI = new Uri(yourHttpUri); 
yourURI.query // "?url=http://www.google.co.uk/" 
yourURI.fragment // "#hl=en&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=2803373l2803701l2l2803826l4l4l0l0l0l0l188l453l0.3l3l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=883" 

編集:

あなたはRequest.Url.ToString();を試してみました(そして、その結果から新しいUriを作成する)

+0

質問をもう一度お読みください。たとえば、そのページ内からURLとクエリ文字列を取得したいとします。 page_loadに –

4

それは、サーバー側のアンカーの後に値を取得することはできません、あなたはシオマネキでこれを確認することができますか同様の何か、あなたはクライアントでこれを処理する必要があります。ブラウザは単にアンカーの後にすべてを取り除きます。

Retrieving Anchor Link In URL for ASP.Net

c# get complete URL with "#"

アップデート:私はまさにこれを行うgoogleの方法がわからない、しかし、あなたが最初の要求の後にシオマネキを見れば、別の#せずにそこに行く

、ここfidllerがありますあなたの質問からの要求をログに記録:

enter image description here

私のアドバイスは、どのようにGoogleがこれを行うか、多分別の質問をすると、フィドラーと見える

+0

もし可能でないなら、あなたは何かを検索するときに、どのようにURLがURLに使われますか? –

+0

私は私の答えを更新する –

関連する問題