2017-11-01 5 views
0

포스트 WebApi 방법 매개 변수를 C 난 그냥 포스트 액션 메소드 보이는 MVC asp.net에서 Webapi 방법을 게시하고 싶습니다 #

[HttpPost] 
    [Route("api/agency/Dashboard")] 
    public HttpResponseMessage Index(getCookiesModel cookies) 
    { 
    //code here 
    } 

나는이

string result = webClient.DownloadString("http://localhost:11668/api/agency/dashboard?cookies=" + cookies); 

같은 POST 요청을 보내고

같은 및 getCookiesModel

public class getCookiesModel 
{ 
    public string userToken { get; set; } 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    public long userId { get; set; } 
    public string username { get; set; } 
    public string country { get; set; } 
    public string usercode { get; set; } 
} 

그러나이 반환 404 페이지를 찾을 수 없습니다. 이 문제를 해결하는 방법을 알려주세요.

+3

'DownloadString'는 GET 요청과 조치가 POST를 기대하기 때문에 그 문제가 될 수있는 경우, 당신은 볼 수 있습니다. – Nkosi

+0

해결 방법. – DumpsterDiver

+1

어 ... 게시물을 변경 하시겠습니까? – john

답변

2

DownloadString은 GET 요청이며 조치가 POST를 예상하므로 어디에서 문제가 발생했는지 확인할 수 있습니다.

HttpClient을 사용하여 요청을 게시 해보십시오. 본문에 페이로드를 보내는 경우 쿼리 문자열이 필요하지 않으므로 클라이언트 호출 URL도 업데이트해야합니다.

var client = new HttpCient { 
    BaseUri = new Uri("http://localhost:11668/") 
}; 

var model = new getCookiesModel() { 
    //...populate properties. 
}; 
var url = "api/agency/dashboard"; 
//send POST request 
var response = await client.PostAsJsonAsync(url, model); 
//read the content of the response as a string 
var responseString = await response.Content.ReadAsStringAsync(); 

웹 API는 다음과 같은 구문을 따라야합니다

[HttpPost] 
[Route("api/agency/Dashboard")] 
public IHttpActionResult Index([FromBody]getCookiesModel cookies) { 
    //code here... 
    return Ok(); 
}