Android 在WebApi中调用异步REST方法显示为找不到方法
我有以下方法的Web Api:Android 在WebApi中调用异步REST方法显示为找不到方法,android,rest,asp.net-web-api,Android,Rest,Asp.net Web Api,我有以下方法的Web Api: [HttpPost] public HttpResponseMessage Complete(__ServiceComplete ServiceCompleteInfo) { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest); // Send SMS to User for co
[HttpPost]
public HttpResponseMessage Complete(__ServiceComplete ServiceCompleteInfo)
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest);
// Send SMS to User for completion
//////////////////////////////////////////////////////////////////
SmsBL blSms = new SmsBL();
blSms.SendServiceCompleteSms(ServiceCompleteInfo.ProposalId, ServiceCompleteInfo.CallId);
response = new HttpResponseMessage(HttpStatusCode.OK);
}
return response;
}
sendservicecompletems
函数是异步的
现在,我从android应用程序调用这个函数,并使用调试器监视所有内容
如果我对该行进行了注释,并且没有调用SendServiceCompleteMs,我会在android应用程序中收到Http.OK响应
如果我取消对sendservicecompletems
的注释,则会发送一条SMS,我可以看到该方法从服务器返回Http.OK
。但是,在Android中,我得到Java.io.FileNotFoundException
,Http代码“Internal server error”(500),就好像找不到该方法一样
知道如何处理吗?如果没有找到该方法,
sendservicecompletems方法
正在引发异常
另外,您说过sendservicecompletems
方法是异步的,但您是同步调用它的。最好这样做:
[HttpPost]
public async Task<HttpResponseMessage> CompleteAsync(__ServiceComplete ServiceCompleteInfo)
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest);
// Send SMS to User for completion
//////////////////////////////////////////////////////////////////
SmsBL blSms = new SmsBL();
await blSms.SendServiceCompleteSms(ServiceCompleteInfo.ProposalId, ServiceCompleteInfo.CallId);
response = new HttpResponseMessage(HttpStatusCode.OK);
}
return response;
}
[HttpPost]
公共异步任务CompleteAsync(\u serviceCompleteServiceCompleteInfo)
{
HttpResponseMessage response=新的HttpResponseMessage(HttpStatusCode.BadRequest);
//发送短信给用户完成
//////////////////////////////////////////////////////////////////
SmsBL blSms=新SmsBL();
等待blSms.sendservicecompletems(ServiceCompleteInfo.ProposalId,ServiceCompleteInfo.CallId);
响应=新的HttpResponseMessage(HttpStatusCode.OK);
}
返回响应;
}
太棒了。非常感谢。