API返回对象而不是字符串



我有一个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";是:

"{"userToken":"rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"}"

当我在API中直接执行(swagger(时,我得到的响应是:

{
"userToken": "rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"
}

我所期望的是:

"rgkjnrekljgtlwgktkwljhnglterkjhnyJuYmYiOjE2NDM2NjAxNDMsImV4cCI6MTY0NjA3OTM0MywiUGF0aWVudHNzbiwerlfkrlkgfnrejgnlrekjglmeMc"

我不确定问题出在哪里,因为我在这里没有太多经验,但我很感激对改进的任何帮助

您的API正在返回一个JSON-序列化对象。可能是这样的:

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 userTokenFromSomewhere;

如果您不能控制API代码,那么反序列化代码中的响应:

var token = JsonConvert.DeserializeObject<UserTokenClass>(responseBody);

相关内容

  • 没有找到相关文章

最新更新