Я пытаюсь начать работу с API Dwolla, однако, когда я пытаюсь зарегистрировать нового пользователя, он возвращает внутреннюю ошибку сервера 500 и сообщение об ошибке, что расстраивает, потому что это не дает мне ничего, из чего можно было бы уйти.
Вот код:
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);
}
}
Я отправляю запрос в виде строки JSON, потому что я видел в другом потоке, что кто-то сказал, что это то, что ожидает API, однако я также попытался опубликовать NameValueCollection, но это тоже было ошибкой.
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);
}
}
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.