近日在用HttpClient访问抓取汇率时,为了省力,直接采用
String url = "http://api.liqwei.com/currency/?exchange=usd|cny&count=1"; HttpClient client = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); HttpResponse response = client.execute(httpget);
以前用这种方法都没有问题,但这次却报如下错误:
java.net.URISyntaxException: Illegal character in query at index 44
查找了一些网上资料,说地址中涉及了特殊字符,如‘|’‘&’等。所以不能直接用String代替URI来访问。必须采用%0xXX方式来替代特殊字符。但这种办法不直观。所以只能先把String转成URL,再能过URL生成URI的方法来解决问题。代码如下
URL url = new URL(strUrl); URI uri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null); HttpClient client = new DefaultHttpClient(); HttpGet httpget = new HttpGet(uri);
相关推荐
修复了尝试使用(或通过库使用)java.net.URI 时的 URISyntaxException。 现在您可以再次使用 Java!获取URI 或者试一试。 有一个带有一个静态方法的类。 它接受任意 URL 并将其转换为 java.net.URI 执行任何必要的...
链接到 :索引 80 处查询中的非法字符: : en&q=allinurl:file+java.sun.com&btnI=I'm% 链接到 :索引 80 处查询中的非法字符: 链接到 : java.net.URISyntaxException: 索引 80 处查询中的非法字符: 链接到...
import java.net.URISyntaxException; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class HibListener implements ServletContextListener { @Override...
import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; ...
import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; ``` 这些包为处理HDFS提供了必要的工具,如处理...
import java.net.URI; public class Main { public static void main(String[] args) { try { // 创建URI对象,代表你要打开的网页URL URI uri = new URI("http://www.example.com"); // 获取本地桌面环境...
new java.net.URI(LinkLabel.this.url)); } catch (Exception ex) { } } }); } private void setText(boolean b) { if (!b) setText("<html><font color=blue><u>" + text); else setText("<html><font ...
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%...
import java.net.URI; import java.util.Arrays; import java.util.List; public class CompilerTest { public static void main(String[] args) throws Exception { String source = "public class Main { ...
import java.net.URISyntaxException; public class HDFSClient { @Test public void testMkdirs() throws IOException, InterruptedException, URISyntaxException { // 1. 获取文件系统配置 Configuration ...
2. **java.net.URI类**:Java标准库提供了`java.net.URI`类来创建、解析和操作URI。这个类遵循RFC 3986规范,是处理URI的主要工具。例如,你可以创建一个新的URI实例,像这样:`URI uri = new URI(...
import java.net.URISyntaxException; public class TestDemo { public static void main(String[] args) throws URISyntaxException, IOException { BufferedInputStream bufferedInputStream = ...
import java.net.URISyntaxException; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache...
在Java中,`java.net.URI`类提供了对URI的支持,包括创建、解析、比较和操作URI。以下是一些关键知识点: 1. **创建URI对象**: 使用`URI`类的构造函数,你可以创建一个新的URI对象。例如: ```java URI uri = ...
- `java.net.URL`类可以转换为`URI`,但不是所有URI都能转换回URL,因为某些URI可能不适合定位资源。 - `new URL(URI uri)`和`URI.toURL()`是两者之间的转换方法。 6. 文件系统URI: - Java的`URI`类也可以用于...
`java.net.URL`类提供了打开到资源的连接,`java.net.URLConnection`则用于与该资源进行交互。 4. **HTTP通信**:对于Web应用,RhodyMap可能使用了Java的`HttpURLConnection`或第三方库如Apache HttpClient来发送...
在Java中,`java.net.URI`类是处理URI的核心工具。你可以使用这个类来创建、解析、比较和操作URI。创建一个URI对象的常见方式如下: ```java URI uri = new URI("http", "example.com", "/path/to/resource", ...
在这个实例中,`codefans.net`可能是一个网站链接或者解码后的文本数据。如果`decodedData`是一个URL,可以使用`java.awt.Desktop`类打开浏览器访问该链接: ```java if (Desktop.isDesktopSupported()) { ...