Hi all,
Not too sure if this is something you guys want to include. It is
within the spec at http://www.xmlrpc.com/spec:
A User-Agent and Host must be specified.
Basically, I needed to be able to set this because a service provider I
use requires this field to be used as a part of the "authentication"
process.
So without further ado...
--------------------------------------------------------------------------
diff -u -r1.8 XmlRpcClient.java
--- XmlRpcClient.java 20 Feb 2002 18:06:04 -0000 1.8
+++ XmlRpcClient.java 8 Mar 2002 02:43:19 -0000
@@ -70,7 +70,10 @@
public class XmlRpcClient
implements XmlRpcHandler
{
+ private static final String DEFAULT_USER_AGENT = XmlRpc.version;
+
protected URL url;
+ protected String userAgent;
private String auth;
// pool of worker instances
@@ -131,7 +134,14 @@
.getBytes())).trim();
}
}
-
+
+ /**
+ * Set a custom User-Agent header for XML-RPC requests
+ */
+ public void setUserAgent(String customUserAgent)
+ {
+ userAgent = customUserAgent;
+ }
/**
* Generate an XML-RPC request and send it to the server. Parse
the result and
@@ -381,6 +391,11 @@
con.setRequestProperty("Content-Length",
Integer.toString(request.length));
con.setRequestProperty("Content-Type", "text/xml");
+ if (userAgent == "") // Client has not given us a
custom User-Agent property
+ {
+ userAgent = DEFAULT_USER_AGENT;
+ }
+ con.setRequestProperty("User-Agent", userAgent);
if (auth != null)
{
con.setRequestProperty("Authorization", "Basic " +
auth);