「java调取url」java获取调用者

博主:adminadmin 2023-01-12 03:21:09 569

本篇文章给大家谈谈java调取url,以及java获取调用者对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java怎样获取url参数

如果是javaweb 项目,那么非常简单,直接调用 HttpServletRequest 对象的 .getParamter("参数名称") 方法即可得到。

如果是普通java 项目:

/**

* 获取网址的指定参数值

*

* @param url

* 网址

* @param parameter

* 参数名称

* @author cevencheng

* @return

*/

public static String getParameter(String url, String parameter, String defaultValue) {

try {

final String charset = "utf-8";

url = URLDecoder.decode(url, charset);

if (url.indexOf('?') != -1) {

final String contents = url.substring(url.indexOf('?') + 1);

HashMapString, String map = new HashMapString, String();

String[] keyValues = contents.split("");

for (int i = 0; i keyValues.length; i++) {

String key = keyValues[i].substring(0, keyValues[i].indexOf("="));

String value = keyValues[i].substring(keyValues[i].indexOf("=") + 1);

if (key.equals(parameter)) {

if (value == null || "".equals(value.trim())) {

return defaultValue;

}

return value;

}

map.put(key, value);

}

}

return null;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

关于java调用url接口方法的问题

对于具体的数据请求方式、请求方式、响应数据格式要看你的接口要求,这是通用代码:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class Test {

public static void main(String[] args) throws IOException {

System.out.println(getData());

}

public static String getData() throws IOException {

// 创建指定url的url对象,这里的地址是:淘宝商品搜索建议

URL url = new URL(";q=电脑callback=cb");

// 创建http链接对象

HttpURLConnection con = (HttpURLConnection) url.openConnection();

// 设置请求方式

con.setRequestMethod("POST");

// 打开链接,上一步和该步骤作用相同,可以省略

con.connect();

// 获取请求返回内容并设置编码为UTF-8

BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));

// 将返回数据拼接为字符串

StringBuffer sb = new StringBuffer();

// 临时字符串

String temp = null;

// 获取数据

while ((temp = reader.readLine()) != null) {

sb.append(temp);

}

// 关闭流

reader.close();

return sb.toString();

}

}

结果:

java关于URL类的调用。。。

你上面的代码中一共有两个操作,1,向一个url请求数据;2,获得数据,并解析成html。你遇到的响应慢的问题不在你这个代码中,而是在你发起url请求时,url的服务器给你响应的速度。url的服务器可能有数据库的操作或其它耗时操作,当它没有给你返回数据时,你这个方法是阻塞的,并不会立刻返回。

java获取URL

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

public class GetLinks {

private String webSource;

private String url;

public GetLinks(String url) throws MalformedURLException, IOException {

this.url = Complete(url);

webSource = getWebCon(this.url);

}

private String getWebCon(String strURL) throws MalformedURLException,

IOException {

StringBuffer sb = new StringBuffer();

java.net.URL url = new java.net.URL(strURL);

BufferedReader in = new BufferedReader(new InputStreamReader(url

.openStream()));

String line;

while ((line = in.readLine()) != null) {

sb.append(line);

}

in.close();

return sb.toString();

}

private String Complete(String link)throws MalformedURLException{

URL url1 = new URL(link);

URL url2 = new URL(link+"/");

String handledUrl = link;

try{

StringBuffer sb1 = new StringBuffer();

BufferedReader in1 = new BufferedReader(new InputStreamReader(url1

.openStream()));

String line1;

while ((line1 = in1.readLine()) != null) {

sb1.append(line1);

}

in1.close();

StringBuffer sb2 = new StringBuffer();

BufferedReader in2 = new BufferedReader(new InputStreamReader(url2

.openStream()));

String line2;

while ((line2 = in2.readLine()) != null) {

sb2.append(line2);

}

in1.close();

if(sb1.toString().equals(sb2.toString())){

handledUrl = link+"/";

}

}catch(Exception e){

handledUrl = link;

}

return handledUrl;

}

/**

* 处理链接的相对路径

* @param link 相对路径或绝对路径

* @return 绝对路径

*/

private String urlHandler(String link) {

if (link == null)

return null;

link = link.trim();

if (link.toLowerCase().startsWith("http://")

|| link.toLowerCase().startsWith("https://")) {

return link;

}

String pare = url.trim();

if (!link.startsWith("/")) {

if (pare.endsWith("/")) {

return pare + link;

}

if (url.lastIndexOf("/") == url.indexOf("//") + 1 || url.lastIndexOf("/") == url.indexOf("//") + 2) {

return pare + "/" + link;

} else {

int lastSeparatorIndex = url.lastIndexOf("/");

return url.substring(0, lastSeparatorIndex + 1) + link;

}

}else{

if (url.lastIndexOf("/") == url.indexOf("//") + 1 || url.lastIndexOf("/") == url.indexOf("//") + 2) {

return pare + link;

}else{

return url.substring(0,url.indexOf("/", url.indexOf("//")+3)) + link;

}

}

}

public ListString getAnchorTagUrls() {

if (webSource == null) {

System.out.println("没有网页源代码");

return null;

}

ArrayListString list = new ArrayListString();

int index = 0;

while (index != -1) {

index = webSource.toLowerCase().indexOf("a ", index);

if (index != -1) {

int end = webSource.indexOf("", index);

String str = webSource.substring(index, end == -1 ? webSource

.length() : end);

str = str.replaceAll("\\s*=\\s*", "=");

if (str.toLowerCase().matches("^a.*href\\s*=\\s*[\'|\"]?.*")) {// "^a\\s+\\w*\\s*href\\s*=\\s*[\'|\"]?.*"

int hrefIndex = str.toLowerCase().indexOf("href=");

int leadingQuotesIndex = -1;

if ((leadingQuotesIndex = str.indexOf("\"", hrefIndex

+ "href=".length())) != -1) { // 形如a

// href="....."

int TrailingQuotesIndex = str.indexOf("\"",

leadingQuotesIndex + 1);

TrailingQuotesIndex = TrailingQuotesIndex == -1 ? str

.length() : TrailingQuotesIndex;

str = str.substring(leadingQuotesIndex + 1,

TrailingQuotesIndex);

str = urlHandler(str);

list.add(str);

System.out.println(str);

index += "a ".length();

continue;

}

if ((leadingQuotesIndex = str.indexOf("\'", hrefIndex

+ "href=".length())) != -1) { // 形如a

// href='.....'

int TrailingQuotesIndex = str.indexOf("\'",

leadingQuotesIndex + 1);

TrailingQuotesIndex = TrailingQuotesIndex == -1 ? str

.length() : TrailingQuotesIndex;

str = str.substring(leadingQuotesIndex + 1,

TrailingQuotesIndex);

str = urlHandler(str);

System.out.println(str);

list.add(str);

index += "a ".length();

continue;

}

int whitespaceIndex = str.indexOf(" ", hrefIndex

+ "href=".length()); // 形如a href=

//

whitespaceIndex = whitespaceIndex == -1 ? str.length()

: whitespaceIndex;

str = str.substring(hrefIndex + "href=".length(),

whitespaceIndex);

str = urlHandler(str);

list.add(str);

System.out.println(str);

}

index += "a ".length();

}

}

return list;

}

public static void main(String[] args) throws Exception {

GetLinks gl = new GetLinks("");

ListString list = gl.getAnchorTagUrls();

for(String str:list) {

System.out.println(str);

}

}

}

关于java调取url和java获取调用者的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。