狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

一個用來訪問http服務器的東西。技巧類似于java.net中的那個。但要強。

一個用來訪問http服務器的東西。技巧類似于java.net中的那個。但要強。

更新時間:2024-04-10 文章作者:未知 信息來源:網絡 閱讀次數:

package net.sonyhome.net;

import java.io.*;
import java.net.*;
import java.util.*;
import java.text.*;
/**
* 一個用來訪問http服務器的東西。功能類似于java.net中的那個。但要強,這個對Post方法的支持更好。
* 其實也不能說是我寫的。不記得從哪兒找來的程序,稍事修改了一下。所以現在程序的結構都忘啦。
* 不過有一點是肯定的,那就是可以用。呵呵。
* 去年我做的Java版的精華區就是用這個類來訪問的。
* Creation date: (2001-8-24 23:57:14)
* @author: SonyMusic
*/
public class HttpConnection {
private URL url = null;
//private boolean doInput = true;
//private boolean doOutput = true;

private boolean usePost = false;

private boolean useCaches = false;

private Vector reqHeaderNames = new Vector();
private Vector reqHeaderValues = new Vector();
private Vector resHeaderNames = null;
private Vector resHeaderValues = null;
private Socket socket = null;
private OutputStream out = null;
private InputStream in = null;
private boolean useHttp11 = false;

private boolean connected = false;

private boolean inputStarted = false;

Hashtable postData = new Hashtable();
Hashtable getData = new Hashtable();

/**
 * HttpConnection constructor comment.
 */
public HttpConnection(URL url) {
super();
this.url = url;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:16:52)
 * @param name java.lang.String
 * @param value java.lang.String
 */
public void addGet(String name, String value) {
getData.put(name, value);
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:16:52)
 * @param name java.lang.String
 * @param value java.lang.String
 */
public void addPost(String name, String value) {
postData.put(name, value);
}
public void close() throws IOException {
if (!connected)
return;
out.close();
if (inputStarted)
in.close();
socket.close();
}
public void connect() throws IOException {
if (connected)
return;
if (!useCaches) {
setRequestProperty("Pragma", "no-cache");
//setRequestProperty("Cache-Control", "no-cache, must-revalidate");
//setRequestProperty("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
}
String protocol = url.getProtocol();
if (!protocol.equals("http"))
throw new UnknownServiceException("unknown protocol");
String host = url.getHost();
int port = url.getPort();
if (port == -1)
port = 80;
String file = url.getFile();

socket = new Socket(host, port);
out = socket.getOutputStream();
PrintStream pout = new PrintStream(out);

String method;
if (usePost) {
method = "POST";
setRequestProperty("Content-type", "application/x-www-form-urlencoded");
int len = getPostDataLength();
setRequestProperty("Content-length", String.valueOf(getPostDataLength()));

}
else
method = "GET";
if (getGetDataLength() > 0) {
file += "?" + getGetDataString();
}
pout.println(method + " " + file + " HTTP/1.0");

for (int i = 0; i < reqHeaderNames.size(); ++i) {
String name = (String) reqHeaderNames.elementAt(i);
String value = (String) reqHeaderValues.elementAt(i);
pout.println(name + ": " + value);
}
pout.println("");
if (usePost) {
String ttt = getPostDataString();
pout.println(getPostDataString());
}

pout.flush();

connected = true;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 2:06:07)
 * @return boolean
 * @exception java.lang.IllegalStateException The exception description.
 */
public boolean contentIsText() throws IOException {
String type = getContentType();
if (type.startsWith("text"))
return true;
return false;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 2:20:31)
 * @return byte[]
 */
public byte[] getByteArray() throws IOException {
DataInputStream din = new DataInputStream(getInputStream());

byte[] ret;
byte[] b = new byte[1024];
int off = 0, len = 0;

ByteArrayOutputStream bos = new ByteArrayOutputStream();
while ((len = din.read(b, off, 1024)) > 0) {
bos.write(b, 0, len);
if (len < 1024)
break;
}
bos.flush();
bos.close();
return bos.toByteArray();
}
// Gets the content length.Returns -1 if not known.
public int getContentLength() throws IOException {
return getHeaderFieldInt("content-length", -1);
}
/// Gets the content type.Returns null if not known.
public String getContentType() throws IOException {
return getHeaderField("content-type");
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:18:23)
 * @return java.lang.String
 */
public int getGetDataLength() {
return getGetDataString().length();
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:18:23)
 * @return java.lang.String
 */
public String getGetDataString() {
StringBuffer buf = new StringBuffer();
Enumeration enu = getData.keys();
while (enu.hasMoreElements()) {
String key = (String) (enu.nextElement());
String value = (String) (getData.get(key));
if (buf.length() > 0)
buf.append("&");
buf.append(key);
buf.append("=");
buf.append(URLEncoder.encode(value));
}
return buf.toString();
}
public String getHeaderField(String name) throws IOException {
if (resHeaderNames == null)
startInput();
int i = resHeaderNames.indexOf(name.toLowerCase());
if (i == -1)
return null;
return (String) resHeaderValues.elementAt(i);
}
public long getHeaderFieldDate(String name, long def) throws IOException {
try {
return DateFormat.getDateInstance().parse(getHeaderField(name)).getTime();
}
catch (ParseException e) {
throw new IOException(e.toString());
}
}
public int getHeaderFieldInt(String name, int def) throws IOException {
try {
return Integer.parseInt(getHeaderField(name));
}
catch (NumberFormatException t) {
return def;
}
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:12:09)
 * @return java.util.Enumeration
 */
public Enumeration getHeaderNames() {
return resHeaderNames.elements();
}
public InputStream getInputStream() throws IOException {
startInput();
return in;
}
public OutputStream getOutputStream() throws IOException {
connect();
return out;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:18:23)
 * @return java.lang.String
 */
public int getPostDataLength() {
return getPostDataString().length();
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:18:23)
 * @return java.lang.String
 */
public String getPostDataString() {
StringBuffer buf = new StringBuffer();
Enumeration enu = postData.keys();
while (enu.hasMoreElements()) {
String key = (String) (enu.nextElement());
String value = (String) (postData.get(key));
if (buf.length() > 0)
buf.append("&");
buf.append(key);
buf.append("=");
buf.append(URLEncoder.encode(value));
}
return buf.toString();
}
public String getRequestProperty(String name) {
if (connected)
throw new IllegalAccessError("already connected");
int i = reqHeaderNames.indexOf(name);
if (i == -1)
return null;
return (String) reqHeaderValues.elementAt(i);
}
public URL getURL() {
return url;
}
public boolean getUseCaches() {
return useCaches;
}
public boolean getUseHttp11() {
return useHttp11;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:48:15)
 * @return boolean
 */
public boolean isUsePost() {
return usePost;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 0:15:53)
 * @param args java.lang.String[]
 */
public static void main(String[] args) {
try {
/*
URL url=new URL("http","192.168.0.3","/Post.php");
HttpConnection con=new HttpConnection(url);
con.setUsePost(true);
con.setUseCaches(false);
//con.setRequestProperty("Connection", "Keep-Alive");

con.addGet("TextField","你好");
con.addGet("Submit", "submit");

con.connect();
//ByteArrayOutputStream bos=con.getByteArray();
byte[] ret=con.getByteArray();
System.out.println(new String(ret));

System.out.println("");
Enumeration enu=con.getHeaderNames();
while (enu.hasMoreElements()) {
String headerName=(String)(enu.nextElement());
System.out.println(headerName+": "+con.getHeaderField(headerName));
}
con.close();
*/

URL url = new URL("http", "192.168.0.3", "/codemaker/IMAGES/BO.GIF");
HttpConnection con = new HttpConnection(url);
con.connect();

FileOutputStream fos = new FileOutputStream("d:\\bo.gif");
fos.write(con.getByteArray());
fos.flush();
fos.close();

System.out.println("");
Enumeration enu = con.getHeaderNames();
while (enu.hasMoreElements()) {
String headerName = (String) (enu.nextElement());
System.out.println(headerName + ": " + con.getHeaderField(headerName));
}
con.close();

}
catch (Exception e) {
e.printStackTrace();
}
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:16:52)
 * @param name java.lang.String
 * @param value java.lang.String
 */
public void removeGet(String name) {
getData.remove(name);
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:16:52)
 * @param name java.lang.String
 * @param value java.lang.String
 */
public void removePost(String name) {
postData.remove(name);
}
public void setRequestProperty(String name, String value) {
if (connected)
throw new IllegalAccessError("already connected");
reqHeaderNames.addElement(name);
reqHeaderValues.addElement(value);
}
public void setUseCaches(boolean useCaches) {
if (connected)
throw new IllegalAccessError("already connected");
this.useCaches = useCaches;
}
public void setUseHttp11(boolean useHttp11) {
if (connected)
throw new IllegalAccessError("already connected");
this.useHttp11 = useHttp11;
}
/**
 * Insert the method's description here.
 * Creation date: (2001-8-25 1:48:15)
 * @param newUsePost boolean
 */
public void setUsePost(boolean newUsePost) {
if (connected)
throw new IllegalAccessError("already connected");
usePost = newUsePost;
}
private void startInput() throws IOException {
connect();
if (inputStarted)
return;
in = socket.getInputStream();
resHeaderNames = new Vector();
resHeaderValues = new Vector();
DataInputStream din = new DataInputStream(in);
String line;

// Read and ignore the status line.
line = din.readLine();
// Read and save the header lines.
while (true) {
line = din.readLine();
if (line == null || line.length() == 0)
break;
int colonBlank = line.indexOf(": ");
if (colonBlank != -1) {
String name = line.substring(0, colonBlank);
String value = line.substring(colonBlank + 2);
resHeaderNames.addElement(name.toLowerCase());
resHeaderValues.addElement(value);
}
}

inputStarted = true;
}
/**
 * Returns a String that represents the value of this object.
 * @return a string representation of the receiver
 */
public String toString() {
// Insert code to print the receiver here.
// This implementation forwards the message to super. You may replace or supplement this.
return this.getClass().getName() + ":" + url;
}
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
91亚洲国产成人精品一区二区三| 久久精彩视频| 波多野结衣中文字幕一区| 久久精品久久精品| 精品在线播放免费| 国产精品一区二区不卡| 国产成人午夜高潮毛片| 国产成人精品免费一区二区| 国产精品亚洲视频| 99国产精品久久久久久久久久久 | 国产精品videossex久久发布| 欧美精品午夜| 亚洲欧洲另类| 一本色道久久综合亚洲精品按摩| 日本韩国一区二区三区| 在线观看免费亚洲| 欧美一区二区三区在线视频| 欧美成人乱码一区二区三区| 久久久www免费人成精品| 日本一区二区免费在线观看视频| 国产精品久久久久久久久搜平片 | 亚洲欧洲精品一区二区| 羞羞视频在线观看欧美| 欧美午夜精品一区二区蜜桃 | 久久成人麻豆午夜电影| 国产一区激情在线| 99久久精品国产精品久久| 欧美精品一卡| 免费视频久久| 91精品国产色综合久久不卡电影| 2021国产精品久久精品| 国产精品卡一卡二| 免费在线一区观看| 99精品视频在线观看| 在线播放一区| 在线观看免费亚洲| 国产人伦精品一区二区| 亚洲一级电影视频| 高潮精品一区videoshd| 国产精品www.| 欧美日韩日日摸| 国产精品理伦片| 老司机免费视频一区二区| 欧美 日韩 国产一区二区在线视频| 日韩视频在线一区二区三区| 欧美日本在线播放| 亚洲日本成人在线观看| 国产一区二区在线电影| 91久久夜色精品国产九色| 91精品欧美久久久久久动漫| 18成人在线观看| 国产河南妇女毛片精品久久久| 激情丁香综合| 91精品综合久久久久久| 亚洲无线码一区二区三区| 高潮精品一区videoshd| 性色一区二区三区| 久久久久久亚洲综合| 免费人成黄页网站在线一区二区| 色综合天天综合| 欧美日韩不卡一区| 一区二区三区精品| 91亚洲精品一区二区乱码| 91福利国产成人精品照片| 一区在线观看免费| 99视频热这里只有精品免费| 日本道色综合久久| 亚洲免费色视频| 99久久国产综合精品色伊| 欧美色图片你懂的| 亚洲精品乱码久久久久久久久| 风间由美一区二区三区在线观看| 久久激情中文| 亚洲免费观看高清在线观看| 92精品国产成人观看免费| 欧美挠脚心视频网站| 婷婷综合五月天| 日韩一级网站| 国产精品传媒入口麻豆| 91视频精品在这里| 欧美成人一区二区三区片免费| 蜜桃av一区二区三区电影| 国产精品一区二区三区免费观看| 国产精品美女久久久久久久| 成人午夜在线免费| 日韩一区二区免费视频| 国产伦精品一区二区三区免费迷| 一本久久a久久精品亚洲| 一区二区三区欧美激情| 亚洲人久久久| 亚洲少妇中出一区| 精品白丝av| 亚洲欧美影音先锋| 精品999网站| 亚洲免费色视频| 一本色道久久综合亚洲精品不| 亚洲国产精品传媒在线观看| 91小视频在线观看| 久久精品亚洲一区二区三区浴池| av激情成人网| 国产婷婷色一区二区三区 | 欧美日韩综合在线免费观看| 毛片不卡一区二区| 欧美乱妇一区二区三区不卡视频| 精品无人码麻豆乱码1区2区 | 色国产综合视频| 看电视剧不卡顿的网站| 欧美日本一区二区三区| 国产一区二区三区免费看| 欧美一区二区女人| 99精品视频在线观看| 亚洲国产精品av| 激情久久一区| 亚洲国产美国国产综合一区二区| 久久在线视频| 国产乱码精品一区二区三区五月婷 | 色域天天综合网| 国产精品正在播放| 久久久夜色精品亚洲| 在线观看亚洲视频啊啊啊啊| 亚洲自拍与偷拍| 欧美三级电影精品| 91小视频免费看| 亚洲精品第1页| 欧美性受xxxx黑人xyx| 高清国产一区二区| 国产精品久久777777| 噜噜噜躁狠狠躁狠狠精品视频 | 久久综合中文| 成人一区二区三区视频| 国产精品午夜春色av| 欧美亚洲三区| 国产一区中文字幕| 中文字幕在线视频一区| 色天使色偷偷av一区二区| 国产一区二区在线免费观看| 欧美经典三级视频一区二区三区| 国产欧美日韩视频一区二区三区| 美女国产一区二区三区| 国产亚洲欧美日韩日本| 久久精品国产清高在天天线 | 欧美精品国产精品| 97精品超碰一区二区三区| 亚洲自拍另类综合| 日韩一区二区三区在线视频| 伊人久久婷婷| 韩国欧美国产一区| 亚洲视频一二三| 91精品国产高清一区二区三区 | 色妞www精品视频| 91论坛在线播放| 蜜桃av一区二区在线观看| 国产精品丝袜久久久久久app| 91成人在线精品| 亚洲大胆女人| 高清不卡在线观看av| 亚洲一区二区免费视频| 久久久精品影视| 欧美视频精品在线观看| 99视频精品免费观看| 成人综合婷婷国产精品久久蜜臀 | 色综合久久综合中文综合网| 美女任你摸久久 | 91视频你懂的| 精品在线观看视频| 午夜影院久久久| 国产精品免费久久久久| 日韩区在线观看| 色成人在线视频| 国产亚洲精品久久飘花| 欧美喷水视频| 成人性生交大片免费看中文网站| 日韩影院精彩在线| 日韩理论片在线| 国产色综合一区| 欧美成人精品福利| 欧美日韩你懂的| 色噜噜久久综合| 欧美在线综合| a91a精品视频在线观看| 欧美日韩一区在线视频| av午夜一区麻豆| 国产成人自拍高清视频在线免费播放| 午夜激情一区二区| 亚洲一区二区视频在线| 亚洲日本在线天堂| 国产精品福利一区二区| 国产日韩精品一区二区三区| 欧美不卡激情三级在线观看| 欧美精品aⅴ在线视频| 欧美网站一区二区| 欧美视频一区二区三区在线观看| 久久久久se| 久久久国产精品一区二区三区| 99亚洲精品| 国产精品资源| 国产精品久久久久久模特| 亚洲一区二区三区精品视频| 国产视频久久| 麻豆成人在线播放|