사용자 지정 개체를 보낼 수 있도록 "게시"메서드를 사용하고 있습니다. 하지만 계속 request.BeginGetResponse()에 대한 다음 예외가 발생했습니다 :Silverlight - webservice에 POST 할 때 예외가 발생합니다.
{System.Net.ProtocolViolationException : 작업의 현재 상태로 인해 작업이 유효하지 않습니다. System.Net.Browser.BrowserHttpWebRequest.BeginGetResponseImplementation에서 는()}
public void Send()
{
HttpWebRequest client = WebRequest.Create(new Uri(BaseUrl)) as HttpWebRequest;
client.Method = "POST";
client.ContentLength = MaxSerializationSize;
client.BeginGetRequestStream(new AsyncCallback(RequestProceed), client);
}
private void RequestProceed(IAsyncResult asuncResult)
{
HttpWebRequest request = (HttpWebRequest) asuncResult.AsyncState;
StreamWriter postDataWriter = new StreamWriter(request.EndGetRequestStream(asuncResult));
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MyCustomClass));
ser.WriteObject(ms, MyCustomClassObject);
postDataWriter.Write(ms);
postDataWriter.Close();
request.BeginGetResponse(new AsyncCallback(ResponceProceed), request);
}
private void ResponceProceed(IAsyncResult asuncResult)
{
var request = (HttpWebRequest) asuncResult.AsyncState;
using (var resp = (HttpWebResponse) request.EndGetResponse(asuncResult))
{
using (var stream = resp.GetResponseStream())
{
}
}
}
나는이 작업을 얻을 수있는 많은 방법을 시도했다. 누군가가 바뀌면 어디서 잘못 될지 알 수 있습니다. 감사.