我有以下代码用于从java代码调用xmlrpc:
public static String Create(String APIKey, String username,
String Password, String Url, String Email, String Enablestatus,
String login, String Name, String FirstName, String language,
String managerGuid, String[] orgunit, String[] ExternalorgunitID,
String[] Competency, String[] Positionexemple,
String[] ExternaluserID, String[] Costcenter) {
try {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(Url));
XmlRpcClient client = new XmlRpcClient();
config.setBasicUserName(username);
config.setBasicPassword(Password);
client.setConfig(config);
client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));
Map namevalue = new HashMap();
namevalue.put("email", Email);
namevalue.put("enableStatus", Enablestatus);
namevalue.put("login", login);
namevalue.put("name", Name);
namevalue.put("firstName", FirstName);
namevalue.put("languages", language);
namevalue.put("managerGUID", managerGuid);
Map custvalue = new HashMap();
custvalue.put(orgunit[0], orgunit[1]); // Org unit
custvalue.put(Competency[0], Competency[1]);
custvalue.put(Positionexemple[0], Positionexemple[1]);
custvalue.put(ExternalorgunitID[0], ExternalorgunitID[1]);
custvalue.put(ExternaluserID[0], ExternaluserID[1]);
custvalue.put(Costcenter[0], Costcenter[1]);
namevalue.put("customFields", custvalue);
namevalue.put("onDuplicateLogin", "Update");
Object[] params = new Object[] { APIKey, "", namevalue };
return client.execute("Create.User", params).toString();
} catch (Exception e) {
return "Error: " + e.toString();
}
}
当我直接点击服务器URL时,它在本地计算机上正常工作。 但是当我放在反向代理服务器后面(即此代码将调用反向代理并且反向代理将调用目标服务器URL。)然后目标服务器不接受我的请求。 原因:标头值与目标URL不匹配,即标头包含反向代理服务器URL而不是目标URL。
现在我的理解,我必须将标题中的主机名更改为原始目标网址。但我在互联网上搜索了很多但都失败了。
我认为我的问题非常明确:)