我想在我的 HTTPRequest 中添加带有变量的标头,但不接受它会给出错误,但是当我以引号传递直接字符串值时,它工作得很好。
她是第三个标头中的代码,我正在传递包含字符串值的变量校验和,但它不起作用,如果我传递直接字符串值,它就可以正常工作。
HttpRequest request1 = (HttpRequest) HttpRequest.newBuilder()
.uri(URI.create("https://api-preprod.phonepe.com/apis/pg-sandbox/pg/v1/pay"))
.header("accept", "application/json")
.header("Content-Type", "application/json")
.header("X-VERIFY",checksum)
.method("POST", HttpRequest.BodyPublishers.ofString("{\"request\":\"\"}"))
.build();
最可能的解释是您没有重写
toString()
类中的 checksum
方法。尝试重写返回 String
校验和值的方法:
class Checksum {
@Override
public String toString() {
return value;
}
}
HttpRequestBuilder
根据一定的规则转换传入 header()
方法的对象,对于自定义类的对象,它只调用 toString()
方法。