작업 코드를 웹 메서드로 옮기는 데 어려움이 있습니다. SteamAPI 및 비동기 메서드 인 RunAsync()를 사용하여 놀고 있는데, 코드 비하인드에서 모두 처리 될 때 이전에 작동했습니다.웹 메서드 내에서 비동기 메서드 호출 및 반환 받기
하지만이 작업을 JQuery .AJAX()가 처리하는 웹 메서드로 옮기고 싶습니다. 기본적으로 웹 메서드 내에서 메서드를 호출하고 JQuery에 의해 처리/표현되도록 데이터를 다시 가져 오려합니다. 전에는 많은 Web Methods를 다루었지만, 정적이 아닌 메소드와 비동기 메소드를 호출하는 메소드는 없었습니다.
실제로 오류가 발생하지는 않지만 API를 호출 할 때 바로 그곳에 앉아서 피들러에서 데이터를 요청하고 반환하는 것을 볼 수 있지만 그 점에서 결코 이동하지 않습니다. 그것은 '내 데이터가있다'명령을받지 못했습니다. 결국 내 .ajax 통화는 30 초 후에 종료됩니다.
누구나 볼 수 있습니까? 특정 브레이크 포인트를 배치하지만, 피들러가 반응을 보인 후에도 절대로 움직이지 않습니다.
string res = await client.GetStringAsync("IPlayerService/GetOwnedGames/v0001/?key=my_steam_key&steamid=my_steam_id&include_appinfo=1&include_played_free_games=1&format=json");
코드 및 스크린 샷을 참조하십시오.
[System.Web.Services.WebMethod]
public static async Task<string> Find_Games(string user)
{
string rVal = string.Empty;
dynamic user_game_data;
try
{
var thisPage = new _default();
user_game_data = await thisPage.RunAsync();
return user_game_data;
}
catch (Exception err)
{
throw new Exception(err.Message);
}
}
public async Task<string> RunAsync()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://api.steampowered.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//client.Timeout = System.TimeSpan.FromMilliseconds(15000); //15 Secs
try
{
string res = await client.GetStringAsync("IPlayerService/GetOwnedGames/v0001/?key=my_steam_key&steamid=my_steam_id&include_appinfo=1&include_played_free_games=1&format=json");
// Read & Deserialize data
//dynamic json_data = JsonConvert.DeserializeObject(res);
////int gamecount = json_data.response.game_count;
//await saveOwnedGames(json_data, gamecount);
return res;
}
catch (HttpRequestException e)
{
throw new Exception(e.Message);
}
}
}
사전에
감사합니다, 당신은 더 이상 정보가 필요하면 알려주세요.
당신이 당신의 코드를 디버깅하는 것을 시도했다 :
는 WebClient은 사용 해보세요? –
물론 오류는 반환되지 않습니다. 그냥 Ajax 호출 시간이 초과 될 때까지 Runasync()를 호출 한 후에 거기에 앉는다. 위에서 언급 한 것처럼 피 들러에서 일하면서 나는 전화와 통화에서 반환 된 데이터를 볼 수 있습니다. 반환 된 데이터로는 아무 것도하지 않는 것 같습니다. – JGreasley
@JGreasley 브라우저에 http : //api.steampowered.com/I ... URL을 치고 (사용중인 모든 쿼리 문자열 매개 변수를 사용하여) 아무 것도 반환하지 않는지, 아니면 단지 잘못된 요청인지 확인하십시오. – fooser