item = 535;
String URI = "http://localhost:3033/WebFormDesigner.aspx?fm_id=" + item.ToString();
//String URI = "http://www.google.com";
WebClient wc = new WebClient();
Stream s = wc.OpenRead(URI);
XPathDocument doc = new XPathDocument(s);
それは動作しません:
XPathDocument doc = new XPathDocument(URI);
上記の方法では、google URIを使用しても機能しますが、localhostのURIがまったく気に入らないようです。ブラウザに入れるとURIが機能することを確認しました。何が起こっているのかよくわかりません。
ストリーム宣言でエラーが発生します。
The remote server returned an error: (401) Unauthorized.
これは私の他の投稿の拡張です:phpのget_file_contentsに似たasp.netのWebページのマークアップをどのように取得しますか
編集:ここで見られている問題は、ページを表示するための許可がないことです。アクセスしているページは安全なページです。私がやろうとしているのは、ページが同じプロジェクト内にあるため、リクエストにアクセス許可を与えることですが、外部ソースであると想定するWebRequestを使用しています。
私はいくつかの異なる試みで達成しようとしていました。どちらもクッキーに関係していました。
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URI);
request.KeepAlive = true;
request.Credentials = CredentialCache.DefaultCredentials;
request.CookieContainer = new CookieContainer();
HttpCookieCollection cookieJar = Request.Cookies;
//foreach (string cookieString in Request.Cookies)
for(int i = 0; i < cookieJar.Count; i++)
{
System.Web.HttpCookie cookie = cookieJar.Get(i);
Cookie oC = new Cookie();
oC.Domain = Request.Url.Host;
oC.Expires = cookie.Expires;
oC.Name = cookie.Name;
oC.Path = cookie.Path;
oC.Secure = cookie.Secure;
oC.Value = cookie.Value;
request.CookieContainer.Add(oC);
}
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
Stream s = response.GetResponseStream();
これはかなり単純なことをしますが、私はまだそれを間違っていると思います。現在のページのCookieを取得し、それらをターゲットページのCookieコレクションに渡します。その後、私は応答の要求を送信します。上記のエラーも発生します。