1

私は、次のコードを含む単純な Silverlight アプリケーションを作成しています。これはかなり標準的だと思います。

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
var request = new WebClient();

var cred = new NetworkCredential(Server.UserName, Server.Password);
request.Credentials = cred;
request.UseDefaultCredentials = false;

request.DownloadStringCompleted += TestServerCompleted;
var uri = new Uri(Server.GetRequestUrl(Methods.ping));
request.DownloadStringAsync(uri);

しかし、Fiddler で要求を表示すると、資格情報がヘッダーに追加されません。私は何が欠けていますか?そこに「Authorization: Basic ...」というヘッダーがあってはいけませんか?

4

1 に答える 1

0

このようなもので試してみてください。

        HttpWebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
        HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
        req.UseDefaultCredentials = false;
        req.Credentials = ew NetworkCredential(Server.UserName, Server.Passwor

        req.ContentType = "text/xml;charset=\"utf-8\"";
        req.Accept = "text/xml";
        req.Method = "POST";
        return req;

        req.BeginGetResponse((IAsyncResult asynchronousResultResponse) =>
            {
                try
                {
                    HttpWebRequest requestResponse = (HttpWebRequest)asynchronousResultResponse.AsyncState;
                    HttpWebResponse response = (HttpWebResponse)requestResponse.EndGetResponse(asynchronousResultResponse);
                    Stream streamResponse = response.GetResponseStream();
                    StreamReader streamRead = new StreamReader(streamResponse);
                    string responseString = streamRead.ReadToEnd();

                    //Your response is here in responseString

                    streamResponse.Close();
                    streamRead.Close();
                    response.Close();
                }
                catch (Exception e)
                {
                    Callback(null, e);
                }
            }, webRequest);

2か月後でもお役に立てれば幸いです...

于 2011-04-22T15:15:06.007 に答える