2012-12-15 2 views
1

Dwolla API를 사용하여 새 사용자를 등록하려고 할 때 500 개의 내부 서버 오류 및 오류 메시지가 반환되지 않습니다.하지만 아무 것도주지 못하기 때문에 실망합니다 벗어나기. 그러나 나는 또한 NameValueCollection은을 게시 시도했지만,Dwolla API 레지스터 오류

public static bool Register(ObjectId userId, User user, out string message) { 
      var dwollaKey = ConfigurationManager.AppSettings["DwollaKey"].ToString(); 
      var dwollaSecret = ConfigurationManager.AppSettings["DwollaSecret"].ToString(); 

      //post register to dwolla api. 
      var request = new DwollaRegisterRequest { 
       client_id = dwollaKey, 
       client_secret = dwollaSecret, 
       email = user.DwollaEmailAddress, 
       password = user.DwollaPassword, 
       pin = user.DwollaPin, 
       firstName = user.FirstName, 
       lastName = user.LastName, 
       address = user.Address, 
       city = user.City, 
       state = user.State, 
       zip = user.ZipCode, 
       type = "Personal", 
       acceptTerms = "true" 
      }; 
      var requestJson = JsonConvert.SerializeObject(request); 
      var url = "https://www.dwolla.com/oauth/rest/register/"; 
      var responseJson = WebRequestHelper.PostString(url, requestJson); 
      var response = JsonConvert.DeserializeObject<DwollaRegisterResult>(responseJson); 
      message = response.Message; 

      //if success, update user with dwolla info. 
      if (response.Success) { 
       //save user. 
       var existingUser = UserService.Get(userId); 
       existingUser.DwollaId = response.Response.Id; 
       existingUser.DwollaEmailAddress = user.DwollaEmailAddress; 
       existingUser.DwollaPassword = user.DwollaPassword; 
       existingUser.DwollaPin = user.DwollaPin; 
       existingUser.FirstName = user.FirstName; 
       existingUser.LastName = user.LastName; 
       existingUser.Address = user.Address; 
       existingUser.City = user.City; 
       existingUser.State = user.State; 
       existingUser.ZipCode = user.ZipCode; 
       UserService.Save(existingUser); 
      } 
      return response.Success; 
     } 

public static string PostString(string url, string requestBody) { 
      using (WebClient client = new WebClient()) { 
       return client.UploadString(url, "POST", requestBody); 
      } 
     } 

나는 누군가가 API 기대 무슨 그건 말했다 다른 스레드에서 보았 기 때문에 나는 JSON 문자열로 요청을 게시하도록하겠습니다 : 여기

코드입니다 그것도 오류가 발생했습니다.

답변

1

요청의 Content-Type을 application/json으로 설정하는 것을 잊어 버렸습니다.

public static string PostString(string url, string requestBody) { 
      using (WebClient client = new WebClient()) { 
       client.Headers.Add("Content-Type", "application/json"); 
       return client.UploadString(url, "POST", requestBody); 
      } 
     }