当前位置: 首页 > 知识库问答 >
问题:

Http post请求NullPointerException输出流

慕云
2023-03-14

我试图激发一个http post请求,我的问题是我得到了一个NullpointerException,我想我知道在哪里,但我不知道为什么。

代码是

HttpURLConnection connection = null;
    try {
      URL url = new URL(targetURL);

      connection = (HttpURLConnection)url.openConnection();
      connection.setRequestMethod("POST");
      connection.setRequestProperty("Content-Type",
           "application/x-www-form-urlencoded");
      connection.setRequestProperty("Content-Length", "" +
               Integer.toString(urlParameters.getBytes().length));
      connection.setRequestProperty("Content-Language", "en-US");
      connection.setUseCaches (false);
      connection.setDoInput(true);
      connection.setDoOutput(true);

      // Send request
      DataOutputStream wr = new DataOutputStream (connection.getOutputStream());
      wr.writeBytes (urlParameters);
      wr.flush();
      wr.close();

      // Get Response
      InputStream is = connection.getInputStream();
      BufferedReader rd = new BufferedReader(new InputStreamReader(is));
      String line;
      StringBuffer response = new StringBuffer();
      while((line = rd.readLine()) != null) {
        response.append(line);
        response.append('\r');
      }
      rd.close();
      log.info("Http request response '{}': ",response.toString());

    } catch (Exception e) {
      log.error("Error while sending http post request.");
      e.printStackTrace();


    } finally {

      if(connection != null) {
        connection.disconnect();
      }
    }
java.lang.NullPointerException
    at sun.net.www.ParseUtil.toURI(ParseUtil.java:261)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:905)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)

它位于以下行:DataOutputStream wr=new DataOutputStream(connection.getoutputstream());

问题似乎是建立Http URL连接,但我的目标URL(我想发送请求的URL)是正确的:目标URL:'Http:localhost:8080/project/externaldata'(它是我的URL模式中我的(Spring)RequestMethod的URL。而且我的参数字符串似乎是正确的参数:'Salutation=Mister&GivenName=Matt&FamilyName=Jones'。或者使用DataOutputStream不是正确的吗?

Thx寻求任何帮助:)

共有1个答案

皇甫树
2023-03-14

我已经检查了你的代码,它运行良好。我想URL有问题,要么是它的错误,要么是URL有一些字符是无法解析的。

import java.io.BufferedReader;

导入java.io.DataOutputStream; 导入java.io.InputStream; 导入java.io.InputStreamReader; 导入java.net.HttpurlConnection; 导入java.net.URL;

公共类代码段{

运行良好,达到了预期的效果

 类似资料:
  • 对传递的 URL 发出一个 POST 请求。 使用 XMLHttpRequest web api 对给定的url 发出一个 post 请求。 用 setRequestHeader 方法设置 HTTP 请求头的值。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第三个参数 data ,不发送数

  • 我需要一个java程序来生成以下请求。我正在使用Apache HttpClient Library,但仍然无法生成这样的请求: 这是我的python程序生成的,我编写了一个等效的java程序。但它扔403。 2012-09-10 15:12:05G信息:G2OAuth auth data=“3,0.0.0,0.0.0,1347289925,3223833979,crlakamai”2012-09-

  • 本文向大家介绍C#使用HttpPost请求调用WebService的方法,包括了C#使用HttpPost请求调用WebService的方法的使用技巧和注意事项,需要的朋友参考一下 之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 WebService。这里还想说一句,还是 web api 的调用简单。 WebSer

  • 当我从discord服务器收到请求时,它会发送如下内容: null 当我运行它时,终端给我&LTResponse[404&>;,这似乎是错误本身的代码,但我希望代码输出消息参数的内容 我为一个可能愚蠢的问题提前道歉。

  • 我必须在简单的Java实现一个帖子请求。 我看过下面这个问题: 如何从Java向json RESTful服务发出post请求? 这是示例的一部分 我的问题是:为什么参数写在输出流上?据我所知,输出流是为了收集一个请求的输出,而不是为了制作它。 只是好奇,考虑到我显然不擅长这个。

  • 因此,我是Java新手,正在尝试将一个变量从扫描器传递到getter/setter方法,以便根据输入的数字对数组进行不同的排序。 我把它放在列表排序的地方;问题是我的扫描仪重复了你必须在列表出现之前多次输入你的选择。 我知道这个问题与调用“int c=assign_6.choice()”有关。如果我硬编码一个数字,它没问题,但它似乎正在多次调用select()函数。 我尝试过将函数移出main,删