导航:首页 > 编程语言 > httpputjava

httpputjava

发布时间:2022-03-01 04:44:58

Ⅰ 使用java开发一个HTTP服务器,能够处理POST,GET,PUT,DELETE请求。

使用Java开发一个HTTP服务器,能够处理POST,GET,PUT,DELETE请求。
1. 监听端口可以配置;
2. 可以配置的一个工作目录;
3. GET请求可以获得相对于该工作目录的静态文件的内容,内容格式限定为html,css,js,json,xml,txt,jpg,gif,png,ico;
a) 例如 GET /f/test1.html返回工作目录下f文件夹下test1.html内容;
b) 在GET请求的的应答中尽可能多的在HTTP头中返回些能获得的到的标准的头信息;
4. POST请求可以在工作目录中创建请求路径对应的文件,文件内容为POST请求的内容;
a) 例如 POST /f/test2.html,在工作目录下f文件夹下创建test2.html文件,并将POST内容作为test2.html的内容。
5. PUT请求可以替换对应路径的文件,修改的内容为PUT请求的内容。注意与POST不同。
a) 例如 PUT /f/test2.html,在工作目录下f文件夹替换test2.html文件的内容,并将PUT内容作为test2.html的内容。
6. DELET请求可以删除对应路径的文件。
a) 例如 PUT /f/test2.html,在工作目录下f文件夹删除test2.html文件。
7. POST,PUT,DELETE成功后返回200,出现找不到文件的情况返回404错误,出现读写文件错误返回500错误。
8. 特别的处理~路径下的GET请求,其包含2个参数,一个是类名,一个是方法名,这些方法都是些无参数并且以字符串为返回值的方法,GET请求应返回这些方法的返回值。
a) 例如 GET /~?class=com.test.Test&method=getTIme,则调用com.test.Test类中String getTIme()方法,将返回值作为GET请求的返回;
b) 若找不到类或方法返回404错误;
c) 若出错返回500错误;
9. 特别的处理$路径下的GET请求,能够为浏览器添加cookie,key为sid,值为UUID的随机字符串。
注意:不是在tomcat之类servlet容器上开发,而是要开发个类似servlet容器的东西。

Ⅱ java调用rest接口如何HttpClient 使用put x-www-form-urlencoded数据

把post的改成put试试
HttpPost httpPost = new HttpPost("http xxx");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("username", "vip"));
nvps.add(new BasicNameValuePair("password", "secret"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
CloseableHttpResponse response2 = httpclient.execute(httpPost);

try {
System.out.println(response2.getStatusLine());
HttpEntity entity2 = response2.getEntity();
// do something useful with the response body
// and ensure it is fully consumed
EntityUtils.consume(entity2);
} finally {
response2.close();
}

Ⅲ java中怎样用post,get,put请求

java中用post,get,put请求方法:
public static String javaHttpGet(String url,String charSet){

String resultData = null;
try {
URL pathUrl = new URL(url); //创建一个URL对象
HttpURLConnection urlConnect = (HttpURLConnection) pathUrl.openConnection(); //打开一个HttpURLConnection连接
urlConnect.setConnectTimeout(30000); // 设置连接超时时间
urlConnect.connect();
if (urlConnect.getResponseCode() == 200) { //请求成功
resultData = readInputStream(urlConnect.getInputStream(), charSet);
}
} catch (MalformedURLException e) {
LogL.getInstance().getLog().error("URL出错!", e);
} catch (IOException e) {
LogL.getInstance().getLog().error("读取数据流出错!", e);
}
return resultData;
}
public static String javaHttpPost(String url,Map<String,Object> map,String charSet){
String resultData=null;
StringBuffer params = new StringBuffer();
try {
Iterator<Entry<String, Object>> ir = map.entrySet().iterator();
while (ir.hasNext()) {
Map.Entry<String, Object> entry = (Map.Entry<String, Object>) ir.next();
params.append(URLEncoder.encode(entry.getKey(),charSet) + "=" + URLEncoder.encode(entry.getValue().toString(), charSet) + "&");
}
byte[] postData = params.deleteCharAt(params.length()).toString().getBytes();
URL pathUrl = new URL(url); //创建一个URL对象
HttpURLConnection urlConnect = (HttpURLConnection) pathUrl.openConnection();
urlConnect.setConnectTimeout(30000); // 设置连接超时时间
urlConnect.setDoOutput(true); //post请求必须设置允许输出
urlConnect.setUseCaches(false); //post请求不能使用缓存
urlConnect.setRequestMethod("POST"); //设置post方式请求
urlConnect.setInstanceFollowRedirects(true);
urlConnect.setRequestProperty("Content-Type","application/x-www-form-urlencoded; charset="+charSet);// 配置请求Content-Type
urlConnect.connect(); // 开始连接
DataOutputStream dos = new DataOutputStream(urlConnect.getOutputStream()); // 发送请求参数
dos.write(postData);
dos.flush();
dos.close();
if (urlConnect.getResponseCode() == 200) { //请求成功
resultData = readInputStream(urlConnect.getInputStream(),charSet);
}
} catch (MalformedURLException e) {
LogL.getInstance().getLog().error("URL出错!", e);
} catch (IOException e) {
LogL.getInstance().getLog().error("读取数据流出错!", e);
} catch (Exception e) {
LogL.getInstance().getLog().error("POST出错!", e);
}
return resultData;
}

Ⅳ JAVA的XX.put中的put方法,是在哪个父类或祖父类中,详述父类链。

put
public
V
put(K key,

V value)
在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则旧值被替换。

指定者:接口
Map<K,V>
中的
put覆盖:类
AbstractMap<K,V>
中的
put参数:key
-
指定值将要关联的键value
-
指定键将要关联的值返回:与
key
关联的旧值;如果
key
没有任何映射关系,则返回
null。(返回
null
还可能表示该映射之前将
null

key
关联。)

Ⅳ java 中怎样使用httpdelete方法并且使用的是什么jar包,为什么我找不到jar包,一直在报错,求大神帮忙

httpClient 在 apache的 官网有

话说回来,直接的delete方法,不建议使用,因为,不安全

~

Ⅵ java怎么主动发送http请求

实现思路就是先定义请求头内容,之后进行请求头设置。

Ⅶ http请求里的PUT,DELETE方法在j2ee里有用吗

有一点我要声明的是:
1、 不管put或者delete及get或者POST如果你不实现该方法,都是没有用的
2、j2ee是值javaweb方面的,有一点只要是HTTP都可以,就看你是否是否这些个方法

Ⅷ HttpClient 中的putMethod上传100M的文件怎么设置,我上传小的不报错。20M就报java heap space 异常。

把大文件切成小文件,每次传上去的不要超过限制就行了。下载的时候,再把他们拼起来。

Ⅸ JAVA中put()中的参数是怎么使用的

http://gceclub.sun.com.cn/Java_Docs/jdk6/html/zh_CN/api/index.html
看这里

Ⅹ java发送put请求

1.服务端
package sterning;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.*;
import java.util.concurrent.*;

public class MultiThreadServer {
private int port=8821;
private ServerSocket serverSocket;
private ExecutorService executorService;//线程池
private final int POOL_SIZE=10;//单个CPU线程池大小

public MultiThreadServer() throws IOException{
serverSocket=new ServerSocket(port);
//Runtime的availableProcessor()方法返回当前系统的CPU数目.
executorService=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);
System.out.println("服务器启动");
}

public void service(){
while(true){
Socket socket=null;
try {
//接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接
socket=serverSocket.accept();
executorService.execute(new Handler(socket));

} catch (Exception e) {
e.printStackTrace();
}
}
}

public static void main(String[] args) throws IOException {
new MultiThreadServer().service();
}

}

class Handler implements Runnable{
private Socket socket;
public Handler(Socket socket){
this.socket=socket;
}
private PrintWriter getWriter(Socket socket) throws IOException{
OutputStream socketOut=socket.getOutputStream();
return new PrintWriter(socketOut,true);
}
private BufferedReader getReader(Socket socket) throws IOException{
InputStream socketIn=socket.getInputStream();
return new BufferedReader(new InputStreamReader(socketIn));
}
public String echo(String msg){
return "echo:"+msg;
}
public void run(){
try {
System.out.println("New connection accepted "+socket.getInetAddress()+":"+socket.getPort());
BufferedReader br=getReader(socket);
PrintWriter pw=getWriter(socket);
String msg=null;
while((msg=br.readLine())!=null){
System.out.println(msg);
pw.println(echo(msg));
if(msg.equals("bye"))
break;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(socket!=null)
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

2.客户端
package sterning;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class MultiThreadClient {

public static void main(String[] args) {
int numTasks = 10;

ExecutorService exec = Executors.newCachedThreadPool();

for (int i = 0; i < numTasks; i++) {
exec.execute(createTask(i));
}

}

// 定义一个简单的任务
private static Runnable createTask(final int taskID) {
return new Runnable() {
private Socket socket = null;
private int port=8821;

public void run() {
System.out.println("Task " + taskID + ":start");
try {
socket = new Socket("localhost", port);
// 发送关闭命令
OutputStream socketOut = socket.getOutputStream();
socketOut.write("shutdown\r\n".getBytes());

// 接收服务器的反馈
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = null;
while ((msg = br.readLine()) != null)
System.out.println(msg);
} catch (IOException e) {
e.printStackTrace();
}
}

};
}
}

阅读全文

与httpputjava相关的资料

热点内容
优信二手车解压后过户 浏览:63
Windows常用c编译器 浏览:780
关于改善国家网络安全的行政命令 浏览:835
安卓如何下载网易荒野pc服 浏览:656
javainetaddress 浏览:106
苹果4s固件下载完了怎么解压 浏览:1005
命令zpa 浏览:288
python编译器小程序 浏览:946
在app上看视频怎么光线调暗 浏览:542
可以中文解压的解压软件 浏览:595
安卓卸载组件应用怎么安装 浏览:915
使用面向对象编程的方式 浏览:342
程序员项目经理的年终总结范文 浏览:932
内衣的加密设计用来干嘛的 浏览:435
淮安数据加密 浏览:295
魔高一丈指标源码 浏览:984
松下php研究所 浏览:171
c回调java 浏览:403
梦幻端游长安地图互通源码 浏览:747
电脑本地文件如何上传服务器 浏览:315