java利用post方法请求网络接口

使用Java对网络接口进行调用,代码如下

 

public class Post {

	public static final String POST_URL = "https://xxxxxxxxxxxxxxxxx";

	public static void httpURLConnectionPOST(String parm) {//parm 你要post的数据
		PrintWriter out = null;
		try {
			URL url = new URL(POST_URL);
			// 将url以open方法返回的urlConnection 连接强转为HttpURLConnection连接
			// (标识一个url所引用的远程对象连接)
			// 此时cnnection只是为一个连接对象,待连接中
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			// 设置连接输出流为true,默认false (post请求是以流的方式隐式的传递参数)
			connection.setDoOutput(true);
			// 设置连接输入流为true
			connection.setDoInput(true);
			// 设置请求方式为post
			connection.setRequestMethod("POST");
			// post请求缓存设为false
			connection.setUseCaches(false);
			// 设置该HttpURLConnection实例是否自动执行重定向
			connection.setInstanceFollowRedirects(true);
			// 设置请求头里面的各个属性 (以下为设置内容的类型)
			// application/x-javascript text/xml->xml数据
			// application/x-javascript->json对象
			// application/x-www-form-urlencoded->表单数据
                        // text/plain->raw格式
			// ;charset=utf-8 必须要,不然会出现乱码
			//该样例使用json对象进行请求
			connection.setRequestProperty("Content-Type", "application/x-javascript;charset=utf-8");
			// 建立连接
			connection.connect();
			// 创建输入输出流,用于往连接里面输出携带的参数,记得设置参数编码格式
			OutputStreamWriter outWriter = 
				new OutputStreamWriter(connection.getOutputStream(), "utf-8");
			out = new PrintWriter(outWriter);
			// 将参数输出到连接
			out.print(parm);
			// 输出完成后刷新并关闭流
			out.flush();
			out.close(); 
			System.out.println(connection.getResponseCode());// 不是200的请跳楼
			// 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)
			BufferedReader bf = 
				new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
			String line;
			StringBuilder sb = new StringBuilder(); // 用来存储响应数据
			// 循环读取流,若不到结尾处
			while ((line = bf.readLine()) != null) {
				sb.append(line).append(System.getProperty("line.separator"));
			}
			bf.close(); // 日常关流
			connection.disconnect(); // 销毁连接
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。 目录: 一、Java 基础 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4.final 在 java 中有什么作用? 5.java 中的 Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与 String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用 final 修饰吗? 14.接口和抽象类有什么区别? 15.java 中 IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和 Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和 Hashtable 有什么区别? 22.如何决定使用 HashMap 还是 TreeMap? 23.说一下 HashMap 的实现原理? 24.说一下 HashSet 的实现原理? 25.ArrayList 和 LinkedList 的区别是什么? 26.如何实现数组和 List 之间的转换? 27.ArrayList 和 Vector 的区别是什么? 28.Array 和 ArrayList 有何区别? 29.在 Queue 中 poll()和 remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器 Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和 ListIterator 有什么区别? 34.怎么确保一个集合不能被修改? 三、多线程 35.并行和并发有什么区别? 36.线程和进程的区别? 37.守护线程是什么? 38.创建线程有哪几种方式? 39.说一下 runnable 和 callable 有什么区别? 40.线程有哪些状态? 41.sleep() 和 wait() 有什么区别? 42.notify()和 notifyAll()有什么区别? 43.线程的 run()和 start()有什么区别? 44.创建线程池有哪几种方式? 45.线程池都有哪些状态? 46.线程池中 submit()和 execute()方法有什么区别? 47.在 java 程序中怎么保证多线程的运行安全? 48.多线程锁的升级原理是什么? 49.什么是死锁? 50.怎么防止死锁? 51.ThreadLocal 是什么?有哪些使用场景? 52.说一下 synchronized 底层实现原理? 53.synchronized 和 volatile 的区别是什么? 54.synchronized 和 Lock 有什么区别? 55.synchronized 和 ReentrantLock 区别是什么? 56.说一下 atomic 的原理? 四、反射 57.什么是反射? 58.什么是 java 序列化?什么情况下需要序列化? 59.动态代理是什么?有哪些应用? 60.怎么实现动态代理? 五、对象拷贝 61.为什么要使用克隆? 62.如何实现对象克隆? 63.深拷贝和浅拷贝区别是什么? 六、Java Web 64.jsp 和 servlet 有什么区别? 65.jsp 有哪些内置对象?作用分别是什么? 66.说一下 jsp 的 4 种作用域? 67.session 和 cookie 有什么区别? 68.说一下 session 的工作原理? 69.如果客户端禁止 cookie 能实现 session 还能用吗? 70.spring mvc 和 struts 的区别是什么? 71.如何避免 sql 注入? 72.什么是 XSS 攻击,如何避免? 73.什么是 CSRF 攻击,如何避免? 七、异常 74.throw 和 throws 的区别? 75.final、finally、finalize 有什么区别? 76.try-catch-finally 中哪个部分
### 回答1: 在Web开发中,HTTP协议是常见的网络通信协议,它可以实现服务器和客户端之间的数据交换。HTTP协议中,GET请求POST请求是比较常用的两种请求方式。其中,GET请求用于获取特定的资源,而POST请求则用于提交数据到服务器端。 如果一个网站需要实现用户注册功能,就需要接受POST请求,因为用户在注册时需要向服务器提交一些数据,例如用户名、密码和电子邮件地址等。服务器端接受POST请求后,将会从请求正文中读取数据,并将其解析后保存至数据库中。 接受POST请求的实现方法,可以使用现有的 Web 框架,如 Django、Flask、Spring 等,或者手动实现一个基于 HTTP 协议的服务器来处理请求。对于一个使用 Python 语言开发的 Web 应用程序而言,可以通过 Flask 框架来实现接受 POST 请求的功能。Flask 提供了一个简单的装饰器,通过使用这个装饰器,可以轻松地将一个函数处理成一个 POST 请求的处理函数。 总之,接受POST请求是Web开发中的常见需求,可以通过现有的框架或自己实现来完成。在实现时需要注意安全性,确保用户提交的数据不会被恶意篡改,从而保证Web应用程序的健壮性和稳定性。 ### 回答2: 在Web开发中,我们用HTTP协议来进行客户端与服务器之间的通信。HTTP协议中有GET和POST两种请求方式,其中GET主要用于向服务器请求获取某个资源的内容,而POST则主要用于向服务器提交数据并请求服务器对这些数据进行处理。因此,当我们需要向服务器发送数据并请求服务器做出响应的时候,我们就需要使用POST请求。 在编写Web应用程序时,我们通常会通过编写服务器端脚本来接收来自客户端的POST请求。服务器端脚本可以使用各种编程语言来编写,如PHP、Python、Java等。 接收POST请求的过程主要分为两步。首先,服务器需要通过解析HTTP协议中的请求头和请求体来获取POST请求中所携带的数据;其次,服务器需要对这些数据进行处理并返回一个响应结果给客户端。 我们通常会通过在服务器端编写脚本来实现这些功能。例如,在PHP中我们可以使用$_POST数组来获取POST请求中所携带的数据。而在Python中,我们可以使用Flask或Django等Web框架来简化这个过程。 总之,通过接受POST请求,我们可以在Web应用程序中实现各种功能,如用户注册、表单提交、数据上传等等。因此,对于Web开发人员来说,掌握POST请求的处理方式是非常重要的。 ### 回答3: 在互联网传输数据时,常用的请求方式有GET和POST两种方式。GET请求是从服务器上获取指定资源,而POST请求是向服务器提交指定数据。因此,接受POST请求意味着服务器能够接收客户端提交的数据,并处理这些数据。 在编程中,可以使用一些编程语言或框架来实现接受POST请求的功能,如Python中的Flask、Java中的Spring、Node.js中的Express等。接受POST请求需要先创建服务器的路由,确定接收数据的URL地址。然后,通过对接收到的数据进行解析和处理,来完成相关的业务逻辑。 比如,在一个WEB应用程序中,如果用户需要通过表单提交数据,那么服务器需要接收这些数据,并将其保存到数据库中或者进行其它操作。具体的实现过程,需要基于不同的框架或工具进行调整。一般而言,通过在服务器端配置POST请求的处理方式,即可完成接受POST请求的功能。 需要注意的是,接受POST请求涉及到数据的处理和传输,需要保证数据的安全性和可靠性。因此,在接受POST请求时,往往需要进行一系列的安全性验证和参数过滤,以避免攻击和安全漏洞。只有确保数据的完整性和正确性,才能保证系统的稳定性和用户数据的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值