最近开发系统silverlight4+tomcat后端。也就是前端是.net,后端是Java。
get方式调用jsp都没有问题,就是post方式调用jsp,总是报NotFoun异常。请问是什么问题?跨域访问绝对没问题,因为Url以get方式都能正常访问。还请知道的指点一下。同样的程序和服务器,8台电脑,只有1台能正常调用。其它机器新装操作系统,安装silverlight runtime后也不能正常访问。能正常访问的机器,不管是调试,还是部署模式,都能正常访问。怀疑是有什么特殊问题,难道是缺什么库吗?
具体信息如下:
post调用类
public class HttpClientPost
{
private string postData;
SynchronizationContext currentContext;
SendOrPostCallback sopc;
public void PostData(string url, string data, SynchronizationContext _currentContext, SendOrPostCallback _sopc)
{
currentContext = _currentContext;
Uri endpoint = new Uri(url);
sopc = _sopc;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
postData = data;
request.BeginGetRequestStream(new AsyncCallback(RequestReadySocket), request);
}
private void RequestReadySocket(IAsyncResult asyncResult)
{
WebRequest request = asyncResult.AsyncState as WebRequest;
Stream requestStream = request.EndGetRequestStream(asyncResult);
//using (StreamWriter writer = new StreamWriter(requestStream))
//{
// writer.Write(postData);
// writer.Flush();
//}
byte[] bytearray=Encoding.UTF8.GetBytes(postData);
requestStream.Write(bytearray, 0, bytearray.Length);
requestStream.Close();
requestStream.Dispose();
request.BeginGetResponse(new AsyncCallback(ResponseReadySocket), request);
}
private void ResponseReadySocket(IAsyncResult asyncResult)
{
try
{
WebRequest request = asyncResult.AsyncState as WebRequest;
WebResponse response = request.EndGetResponse(asyncResult);
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream);
string paramStr = reader.ReadToEnd();
currentContext.Post(sopc, paramStr);
}
}
catch (Exception e)
{
Debug.WriteLine("HttpClientPost " + e.Message + "\n" + e.StackTrace);
}
}
}
}
////////////////////////////////////////////////////////////////////////////
//异常内容
System.Net.WebException
Message=远程服务器返回了错误: NotFound。
StackTrace:
位于 System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
位于 System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
位于 HttpClientPost.ResponseReadySocket(IAsyncResult asyncResult)
位于 System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassd.<InvokeGetResponseCallback>b__b(Object state2)
位于 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
位于 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
位于 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
位于 System.Threading.ThreadPoolWorkQueue.Dispatch()
位于 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
InnerException: System.Net.WebException
Message=远程服务器返回了错误: NotFound。
StackTrace:
位于 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
位于 System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
位于 System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
InnerException:
还请知道如何解决的回个帖谢谢。get方式请求都一切正常的。