HttpWebRequestを使用してXMLを投稿し、XMLを受信するクラスがあります。それはすべてWindowsアプリケーションでうまく機能しますが、ASP.Net Web側で使用すると、WebException「リモートサーバーに接続できません」として表示されます。それは私の会社のプロキシを通過することと関係があると思います。ただし、Webページで機能するようにクレデンシャルを設定する方法がわかりません。以下は、XMLを投稿するコードです(m_Credentialsは「CredentialCache.DefaultCredentials」を使用して設定されています:
private string PostData(string url, string postData)
{
HttpWebRequest request=null;
Uri uri = new Uri(url);
request = (HttpWebRequest) WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
// Tell it to use our credentials else we may not get through
if (m_Credentials != null)
{
request.Proxy.Credentials = m_Credentials;
}
using(Stream writeStream = request.GetRequestStream())
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(postData);
writeStream.Write(bytes, 0, bytes.Length);
}
string result=string.Empty;
using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader (responseStream, Encoding.UTF8))
{
result = readStream.ReadToEnd();
}
}
}
return result;
}