java短網(wǎng)址源代碼 javaweb網(wǎng)站源碼

java中如何根據(jù)一個(gè)網(wǎng)址獲得該網(wǎng)頁的源代碼?

package test;

成都創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供內(nèi)江機(jī)房主機(jī)托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class HttpTest {

private String u;

private String encoding;

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

HttpTest client = new HttpTest("", "UTF-8");

client.run();

}

public HttpTest(String u, String encoding) {

this.u = u;

this.encoding = encoding;

}

public void run() throws Exception {

URL url = new URL(u);// 根據(jù)鏈接(字符串格式),生成一個(gè)URL對(duì)象

HttpURLConnection urlConnection = (HttpURLConnection) url

.openConnection();// 打開URL

BufferedReader reader = new BufferedReader(new InputStreamReader(

urlConnection.getInputStream(), encoding));// 得到輸入流,即獲得了網(wǎng)頁的內(nèi)容

String line; // 讀取輸入流的數(shù)據(jù),并顯示

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

System.out.println(line);

}

}

}

根據(jù)具體問題類型,進(jìn)行步驟拆解/原因原理分析/內(nèi)容拓展等。

具體步驟如下:/導(dǎo)致這種情況的原因主要是……

如何使用java代碼訪問微博短網(wǎng)址的url

① 將長網(wǎng)址用md5算法生成32位簽名串,分為4段,,每段8個(gè)字符;

② 對(duì)這4段循環(huán)處理,取每段的8個(gè)字符, 將他看成16進(jìn)制字符串與0x3fffffff(30位1)的位與操作,超過30位的忽略處理;

③ 將每段得到的這30位又分成6段,每5位的數(shù)字作為字母表的索引取得特定字符,依次進(jìn)行獲得6位字符串;

④ 這樣一個(gè)md5字符串可以獲得4個(gè)6位串,取里面的任意一個(gè)就可作為這個(gè)長url的短url地址。

很簡單的理論,我們并不一定說得到的URL是唯一的,但是我們能夠取出4組URL,這樣幾乎不會(huì)出現(xiàn)太大的重復(fù)。

怎樣在網(wǎng)上查找JAVA源代碼

用百度搜索一下,就用“JAVA源代碼“做為搜索條件。一般能找到很多網(wǎng)站。

要學(xué)JAVA最好還是找本書看一看。JAVA能做的東西很多,你要決定你的主攻方向然后就去找相應(yīng)的資料。

你要學(xué)哪方面:

JAVA應(yīng)用程序開發(fā),

JAVA網(wǎng)絡(luò)開發(fā):JSP,APPLET。

JAVA手持設(shè)備軟件開發(fā),像手機(jī)軟件等。

如果對(duì)程序還不是很懂,最好找本JAVA入門級(jí)的書看看,然后再?zèng)Q定。

如何生成短鏈接 java

因公司推廣需要,需要一套短鏈接生成方案,正好前幾天在MSDN看到有人發(fā)了一個(gè).net版的短鏈接算法,我就把它轉(zhuǎn)換成java版,拿出來共享一下

生成思路:

1.將"原始鏈接(長鏈接)+key(自定義字符串,防止算法泄漏)"MD5加密

2.把加密字符按照 8 位一組 16 進(jìn)制與 0x3FFFFFFF 進(jìn)行位與運(yùn)算,把得到的值與 0x0000003D 進(jìn)行位與運(yùn)算,取得字符數(shù)組 chars 索引,把取得的字符相加,每次循環(huán)按位右移 5 位,把字符串存入對(duì)應(yīng)索引的輸出數(shù)組(4組6位字符串)

3.生成4以下的隨機(jī)數(shù),從輸入數(shù)組中取出隨機(jī)數(shù)對(duì)應(yīng)位置的字符串,作為短鏈,存入數(shù)據(jù)庫或者NoSql

解析方式

編寫一個(gè)web處理程序,把從ur(如:中解析短鏈接,將解析到的短鏈接(zAnuAn)與數(shù)據(jù)庫中存入的原始鏈接進(jìn)行匹配,跳轉(zhuǎn)到匹配到的原始鏈接

package com.bjdata.test;

import java.security.MessageDigest;

import java.util.Random;

public class ShortUrlTest {

public static void main(String[] args) {

String sLongUrl = "/bbs/_t_278433840/"; // 原始鏈接

System.out.println("長鏈接:"+sLongUrl);

String[] aResult = shortUrl(sLongUrl);//將產(chǎn)生4組6位字符串

// 打印出結(jié)果

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

System.out.println("[" + i + "]:" + aResult[i]);

}

Random random=new Random();

int j=random.nextInt(4);//產(chǎn)成4以內(nèi)隨機(jī)數(shù)

System.out.println("短鏈接:"+aResult[j]);//隨機(jī)取一個(gè)作為短鏈

}

public static String[] shortUrl(String url) {

// 可以自定義生成 MD5 加密字符傳前的混合 KEY

String key = "test";

// 要使用生成 URL 的字符

String[] chars = new String[] { "a", "b", "c", "d", "e", "f", "g", "h",

"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",

"u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",

"6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H",

"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",

"U", "V", "W", "X", "Y", "Z"

};

// 對(duì)傳入網(wǎng)址進(jìn)行 MD5 加密

String hex = md5ByHex(key + url);

String[] resUrl = new String[4];

for (int i = 0; i 4; i++) {

// 把加密字符按照 8 位一組 16 進(jìn)制與 0x3FFFFFFF 進(jìn)行位與運(yùn)算

String sTempSubString = hex.substring(i * 8, i * 8 + 8);

// 這里需要使用 long 型來轉(zhuǎn)換,因?yàn)?Inteper .parseInt() 只能處理 31 位 , 首位為符號(hào)位 , 如果不用long ,則會(huì)越界

long lHexLong = 0x3FFFFFFF Long.parseLong(sTempSubString, 16);

String outChars = "";

for (int j = 0; j 6; j++) {

// 把得到的值與 0x0000003D 進(jìn)行位與運(yùn)算,取得字符數(shù)組 chars 索引

long index = 0x0000003D lHexLong;

// 把取得的字符相加

outChars += chars[(int) index];

// 每次循環(huán)按位右移 5 位

lHexLong = lHexLong 5;

}

// 把字符串存入對(duì)應(yīng)索引的輸出數(shù)組

resUrl[i] = outChars;

}

return resUrl;

}

/**

* MD5加密(32位大寫)

* @param src

* @return

*/

public static String md5ByHex(String src) {

try {

MessageDigest md = MessageDigest.getInstance("MD5");

byte[] b = src.getBytes();

md.reset();

md.update(b);

byte[] hash = md.digest();

String hs = "";

String stmp = "";

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

stmp = Integer.toHexString(hash[i] 0xFF);

if (stmp.length() == 1)

hs = hs + "0" + stmp;

else {

hs = hs + stmp;

}

}

return hs.toUpperCase();

} catch (Exception e) {

return "";

}

}

}

運(yùn)行結(jié)果

長鏈接:

[0]:fa6bUr

[1]:ryEfeq

[2]:zAnuAn

[3]:auIJne

短鏈接:zAnuAn

什么是java源代碼 怎么查看

你說的java源代碼是指編譯成的class文件前的java文件。

當(dāng)我們運(yùn)行.java文件時(shí),它會(huì)被系統(tǒng)編譯成.class文件,例如Test.java編譯之后就是Test.class,

源文件就是指Test.java文件,

一般部署項(xiàng)目時(shí),有.class文件就可以發(fā)布運(yùn)行了,但是如果想修改這個(gè)系統(tǒng),.class是不能修改的,要有.java文件才能修改

也可以上網(wǎng)去下反編譯軟件,就是能把.class文件大部分還原成.java文件的工具,但不是100%還原,而且如果不是正版的,小心有毒啊,什么的。

java調(diào)用百度api生成短鏈接,跪求java代碼,不要復(fù)制網(wǎng)上的,要自己親測(cè)實(shí)際能運(yùn)行的!謝謝

package com.zhidao.www;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class TestShort {

public static void main(String[] args) {

// TODO Auto-generated method stub

String httpUrl = "";

String httpArg = "url_long=http%3A%2F%2Fapistore.baidu.com%2Fastore%2Fshopready%2F1973.html";

String jsonResult = request(httpUrl, httpArg);

System.out.println(jsonResult);

}

/**

* @param urlAll

* :請(qǐng)求接口

* @param httpArg

* :參數(shù)

* @return 返回結(jié)果

*/

public static String request(String httpUrl, String httpArg) {

BufferedReader reader = null;

String result = null;

StringBuffer sbf = new StringBuffer();

httpUrl = httpUrl + "?" + httpArg;

try {

URL url = new URL(httpUrl);

HttpURLConnection connection = (HttpURLConnection) url

.openConnection();

connection.setRequestMethod("GET");

// 填入apikey到HTTP header

connection.setRequestProperty("apikey", "自己的apikey");

connection.connect();

InputStream is = connection.getInputStream();

reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

String strRead = null;

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

sbf.append(strRead);

sbf.append("\r\n");

}

reader.close();

result = sbf.toString();

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

}

這個(gè)可以用 不過要自己申請(qǐng)下api key 得到的字符串也要自己解析

當(dāng)前文章:java短網(wǎng)址源代碼 javaweb網(wǎng)站源碼
當(dāng)前URL:http://www.muchs.cn/article18/dosspgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站導(dǎo)航、云服務(wù)器品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)