2017-02-14 1 views
0

나는 점점 오전 왜 확실하지 오전 (우편 배달부 사용) 내 API를ASP. NET 웹 API이 문제 - 요청한 자원이 HTTP 방식을 지원하지 않습니다 'GET'

http://localhost:53840/api/v1/MessageLog/SomeStuff/3에 다음 GET 호출에 "404 찾을 수 없음"

다음

[System.Web.Http.HttpGet] 
    public string SomeStuff(int s) 
    {    
     return "Received input !";    
    } 

WebApiConfig 클래스의 등록 방법은, 전용 경로를 가지고 다음과 같이 컨트롤러 방법은 :

  config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/v1/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

하지만 호출을

[System.Web.Http.HttpGet] 
    public string SomeStuff() 
    {    
     return "Received input !";    
    } 

http://localhost:53840/api/v1/LogMessage/SomeStuff 작품의 코드를 변경하고 POSTMAN는 "받았습니다 입력을!"표시 할 때 응답 본문의 문자열

int/string 등을 전달하기위한 특정 호출 규칙이 있습니까 (많은 성공없이 [FromUri] 사용). JObject를 사용하는 컨트롤에 다른 POST 메서드가 있는데 완벽하게 작동하는 것 같습니다.

[System.Web.Http.HttpGet] 
public string SomeStuff(int id) 
{    
    return "Received input !";    
} 

웹 API는 이름으로 매개 변수와 일치 :

답변

1

그것은 무언가 같이해야합니다. 경로 템플릿에서는 {id}으로 정의되므로 작업 매개 변수 이름이 일치해야합니다.

두 번째 이유는 ID가 선택 사항이고 작업이 템플릿과 일치하기 때문입니다.

+0

네, 감사합니다. 그게 효과가 있었어. – user1554876