我正在尝试使用webClient将表单发布到服务器。这是我的请求代码。
WebClient myWebClient = new WebClient();
NameValueCollection myNameValueCollection = new NameValueCollection();
myNameValueCollection.Add("about", about);
myNameValueCollection.Add("firstname", firstname);
myNameValueCollection.Add("lastname", lastname);
Uri uri = new Uri("http://192.168.1.102:1992/api/member/updateprofile");
myWebClient.UploadValuesAsync(uri,"POST", myNameValueCollection);
此请求不会进入服务器。我已经检查了Url并且它是正确的,因为我可以使用fiddler和使用httpWebRequest客户端发出请求。我没有看到我的代码有任何问题。这可能是什么问题?
我的服务器端代码如下所示:
[HttpPost]
[Route("updateprofile")]
public HttpResponseMessage updateProfile()
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
var httpRequest = HttpContext.Current.Request;
return result;
}
答案 0 :(得分:0)
好的,您正在显示操作的属性路线。但是没有关于控制器的路由/路由前缀与您显示的URL匹配的详细信息。
[RoutePrefix("api/member")]
public class MemberController : ApiController {
//eg POST api/member/updateprofile
[HttpPost]
[Route("updateprofile")]
public HttpResponseMessage updateProfile() {
var result = new HttpResponseMessage(HttpStatusCode.OK);
var httpRequest = HttpContext.Current.Request;
return result;
}
}
确认您的路线并正确配置它们。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}