1
我想知道如何從WCF Restful服務的POST方法獲取返回值。如果它是GET方法,我能夠獲得返回值。在GET方法中,webClient.DownloadString(url);正在返回結果。但在POST方法的情況下,webClient.UploadString(url,「POST」,data);沒有返回結果,它只是調用Web服務。從POST方法的WCF Restful服務獲取返回值
我見過很多示例,人們只是使用UploadString()方法調用WCF服務post方法,並假定它返回成功。但我想檢查返回值並基於那個顯示適當的消息。
//----------------------------------- WCF RESTful service -----------------------------------
[ServiceContract]
public interface IAppService
{
[OperationContract]
[WebInvoke(UriTemplate = "ValidateVisitPIN", Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
bool ValidateVisitPIN(VisitPinRequest visitPinRequest);
}
public class AppService : IAppService
{
public bool ValidateVisitPIN(VisitPinRequest visitPinRequest)
{
//......
if(visitPinRequest.visitPin == 100)
return true;
else
return false;
}
}
//----------------------------------- WCF client application -----------------------------------
//POST method
using (WebClient webClient = new WebClient())
{
VisitPinRequest visitPinRequest = new VisitPinRequest();
visitPinRequest.VisitPin = txtVisitPIN.Text;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(VisitPinRequest));
MemoryStream mem = new MemoryStream();
ser.WriteObject(mem, visitPinRequest);
string url = webServiceURL + "ValidateVisitPIN";
string data = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length);
webClient.Headers["Content-type"] = "application/json";
webClient.Encoding = Encoding.UTF8;
var returnString = webClient.UploadString(url, "POST", data);
}
//Get method
using (WebClient webClient = new WebClient())
{
string url = webServiceURL + "ValidateVisitPIN/" + txtVisitPIN.Text;
string outputString = webClient.DownloadString(url);
MessageBox.Show(outputString);
}
感謝您的重播。我無法讓它工作。 – user1396423
你會請張貼錯誤? – David
沒有任何參數的Web服務工作正常。但我需要將json字符串傳遞給Web服務。我得到低於錯誤請求錯誤(400):傳入消息具有意外的消息格式'原始'。預期的操作消息格式是'Xml','Json'。請告訴我如何很好地傳遞參數 – user1396423