0
APIサービス(内部的にサーバー上でホストされている)を呼び出そうとしている.aspxファイルがあります。ドキュメント内のC#からのSOAP要求
私は同じファイル内からこれをしようとしています(何もありません) - これは可能ですか?ここで
が私の.aspxファイルです:
<%@ Language="C#" debug="true"%>
<HTML>
<script runat="server" language="C#">
public void Page_Load(object sender, EventArgs e)
{
//setup Request
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)
System.Net.HttpWebRequest.Create("https://my.fully.qualified.server/EMSAPI/");
//format our SOAP request
string strRequest = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap12:Envelope" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" +
" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">" +
"<soap12:Body>" +
"<GetAllBookings xmlns=\"http://DEA.API.WEB.SERVICE/\">" +
"<UserName>username</UserName>" +
"<Password>password</Password>" +
"<StartDate>"+
"2016-08-08T00:00:00.000"+
"</StartDate>" +
"<EndDate>"+
"2016-08-09T00:00:00.000"+
"</EndDate>" +
"<BuildingID>36</BuildingID>" +
"<ViewComboRoomComponents>false</ViewComboRoomComponents>" +
"</GetAllBookings>" +
"</soap12:Body>" +
"</soap12:Envelope>";
//String xmlString = strRequest;
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] bytesToWrite = encoding.GetBytes(strRequest);
request.Method = "POST";
request.ContentLength = bytesToWrite.Length;
request.Headers.Add("SOAPAction: \"https://my.fully.qualified.server/EMSAPI/\"");
request.ContentType = "application/soap+xml; charset=utf-8";
System.IO.Stream newStream = request.GetRequestStream();
newStream.Write(bytesToWrite, 0, bytesToWrite.Length);
newStream.Close();
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
System.IO.Stream dataStream = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
}
</script>
<body>
</body>
</HTML>
私は次のエラーを取得する:
Exception Details: System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
Source Error:
Line 58: newStream.Close();
Line 59:
(THIS IS BOLDED) Line 60: System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
Line 61: System.IO.Stream dataStream = response.GetResponseStream();
Line 62: System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);
間違っているか、どのようにこれをさらにトラブルシューティングするかもしれないもの上の任意の考え?
何かがこれを引き起こした可能性があります。最善の策は、APIサービスでスローされた例外をトレースすることです。 –
しかし、フォームは大丈夫で適切に見えますか? C#を最初に扱う - 私は目の2番目のセットが私が作ったばかげたミスをキャッチする可能性があるので、私は期待しています。 – Hanny
正直言って、サーバー上のエラーをより迅速に追跡することになります。どんな例外がスローされても、あなたが問題を正しく指摘するという良いチャンスがあります。 –