2016-07-05 11 views
1

내 클라이언트 측 응용 프로그램에는 Xamarin 및 MobileServices SDK를 사용하고 .Net 백엔드에는 Azure를 사용하고 있습니다. ApiController를 구현했으며 SDK를 가져올 때 성공적으로 데이터를 검색 할 수 있습니다.Azure는 AzureMobileServices SDK를 게시하려고 시도 할 때 허용되지 않습니다.

public async Task<UserData> Get() 
    { 
     UserData newData = new UserData(); 
     newData.name = "null"; 
     ..shortened.. 
     return newData; 
    } 

내가 너무 POST 방식 구현 : 여기 는 가져 오기 코드입니다

public async Task<UserData> Post(string ownerId) 
    { 
     UserData newData = new UserData(); 
     newData.ownerId = ownerId; 
     var success = false; 
     ..shortened... 
     return success; 
    } 

을 그리고 난이 성공적으로 우편 배달을 통해 호출 할 수 있지만, SDK는 나에게이 오류가 발생합니다 :

Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: The request could not be completed. (Method Not Allowed)

여기에 클라이언트 측 코드 : GET 전화 :

var result = await client.InvokeApiAsync<UserData>("userData",System.Net.Http.HttpMethod.Get, null); 

POST 호출

var result = await client.InvokeApiAsync<UserData, bool>("userData", ownerId, System.Net.Http.HttpMethod.Post, null); 

어떤 아이디어가?

+0

실패한 요청의 간단한 코드와 피들러 출력을 게시 할 수 있습니까? –

+0

백엔드 및 클라이언트 코드를 추가했습니다. – Tom

답변

0

Postman을 통해 SDK를 성공적으로 호출 할 수있는 경우 문제는 InvokeApiAsync 호출로 발생해야합니다. 클라이언트 HTTP 요청은 다음 두 가지 방법 중 하나로 로그에 기록 할 수 있습니다.

또한 API 컨트롤러 클래스에서 [MobileAppController] 특성을 사용하고 있는지 확인하십시오. How to: Define a custom API controller을 참조하십시오.

+0

감사합니다. LoggingHandler를 구현했습니다. Postman을 통해 게시 요청을 할 때 매개 변수의 이름이 백엔드 메소드 입력 이름과 일치해야한다는 것을 알았습니다. 요청을 확인하면 'Request : POST https://api.near.lu/api/userData passedValue'라고 표시됩니다. 어떻게 매개 변수가 호출되는지 지정할 수 있습니까? – Tom

+0

JSON 페이로드가 필요한 경우 JObject를 만들고 값을 할당해야합니다. 예 : 'JObject o = JObject.FromObject (새 fieldName = ownerId)'. http://www.newtonsoft.com/json/help/html/CreatingLINQtoJSON.htm을 참조하십시오. –

+0

내가 그것을 필요로하는지 잘 모르겠다, 나는 단지 그것을 얻고 싶다? 매개 변수를 허용하는 Post 메서드를 구현하는 일반적인 절차는 무엇입니까? 또는 다른 방법으로, 위의 예에서 잘못된 점은 무엇입니까? – Tom

관련 문제