0
내가 API를 사용하여 나는이처럼 내 asp.net 웹 응용 프로그램에서 API를 호출을 만드는 중이라서 asp.net 사용하여 그들로부터 반응을 얻고 새로운 오전 : 내가 만든잘못된 JSON :
public ActionResult MakeCall() {
CallTRunkAPIResponse response = GET("https://apibetaus.calltrunk.com/api/v2/GetAccountSummarySimple?access_token=mytokenkeyhere");
return Content("Make a call");
}
을 방법은 응답을 JSON 형식에 대한 응답을 전송하고 다음과 같은 자바 스크립트 시리얼 라이저를 사용하여 내 객체 타입으로 변환 :
public CallTRunkAPIResponse GET(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
request.Headers.Add("X-Client:" + "header info from api here");
request.Headers.Add("X-Authenticator-Session:" + "session key from api here");
request.Method = "GET";
request.ContentType = "application/json";
try
{
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
//return reader.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
var objText = reader.ReadToEnd();
CallTRunkAPIResponse myojb = (CallTRunkAPIResponse)js.Deserialize(objText, typeof(CallTRunkAPIResponse));
return myojb;
}
}
catch (WebException ex)
{
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
}
}
내 객체 (속성 내가이에 가지고해야하는지 응답 다음에 대해 잘 모릅니다이 같다 응답 클래스 :
public class CallTRunkAPIResponse {
public string Status { get; set; }
public string Content { get; set; }
public string Region { get; set; }
}
응답은 다음과 같이해야하지만 오류 얻을 :
{
"Status":"OK",
"Content":{
"Region":"beta.us",
"CurrencyCode":"USD",
"CurrencySymbol":"$",
"Languages":["en"],
"Version":{
"Api":{
"DisplayVersion":"2.0",
"Version":3},
"Client":{
"ReportedVersion":0,
"NewestVersion":2,
"MinVersion":2}
}
}
}
그러나 나는이 오류가 무엇입니까 :에
System.ArgumentException: Invalid JSON primitive: .
을 :
이CallTRunkAPIResponse myojb = (CallTRunkAPIResponse)js.Deserialize(objText, typeof(CallTRunkAPIResponse));