API 返回一个对象而不是字符串
API returning an object instead of string
我有一个 API,我通过改装设置了调用,但是在调用它时我收到的是一个对象而不是字符串,我不明白这里的问题是什么。
var userToken = await apiClient.LoginuserBySsnAsync(ssn);
API调用的定义:
/// <summary>
/// Login user by SSN.
/// </summary>
/// <param name="ssn">user SSN in 12 digit format.</param>
/// <returns>user token.</returns>
[Get("/api/login/loginssn")]
Task<string> LoginUserBySsnAsync(string ssn);
在这种情况下,我进入“userToken”的 return 是:
"{\"userToken\":\"rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc\"}"
当我直接在 API 中执行时(招摇)我得到的响应是:
{
"userToken": "rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"
}
我期望的是:
"rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"
我不确定问题出在哪里,因为我在这方面没有太多经验,但我感谢您提供的任何改进帮助
您的 API 正在 return 创建一个 JSON-serialized 对象。大概是这样的:
public class UserTokenClass {
public string UserToken { get; set; }
}
[Get("/api/login/loginssn")]
public async Task<string> LoginUserBySsnAsync(string ssn) {
// Magic
return JsonConvert.SerializeObject(new UserTokenClass { UserToken = userTokenFromSomewhere });
}
如果你想让它 return 只是一个普通字符串,那么这样做:
return userTokenFromSomewhere;
如果您无法控制 API 代码,请在您的代码中反序列化响应:
var token = JsonConvert.DeserializeObject<UserTokenClass>(responseBody);
我有一个 API,我通过改装设置了调用,但是在调用它时我收到的是一个对象而不是字符串,我不明白这里的问题是什么。
var userToken = await apiClient.LoginuserBySsnAsync(ssn);
API调用的定义:
/// <summary>
/// Login user by SSN.
/// </summary>
/// <param name="ssn">user SSN in 12 digit format.</param>
/// <returns>user token.</returns>
[Get("/api/login/loginssn")]
Task<string> LoginUserBySsnAsync(string ssn);
在这种情况下,我进入“userToken”的 return 是:
"{\"userToken\":\"rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc\"}"
当我直接在 API 中执行时(招摇)我得到的响应是:
{
"userToken": "rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"
}
我期望的是:
"rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"
我不确定问题出在哪里,因为我在这方面没有太多经验,但我感谢您提供的任何改进帮助
您的 API 正在 return 创建一个 JSON-serialized 对象。大概是这样的:
public class UserTokenClass {
public string UserToken { get; set; }
}
[Get("/api/login/loginssn")]
public async Task<string> LoginUserBySsnAsync(string ssn) {
// Magic
return JsonConvert.SerializeObject(new UserTokenClass { UserToken = userTokenFromSomewhere });
}
如果你想让它 return 只是一个普通字符串,那么这样做:
return userTokenFromSomewhere;
如果您无法控制 API 代码,请在您的代码中反序列化响应:
var token = JsonConvert.DeserializeObject<UserTokenClass>(responseBody);