当前位置: 首页 > 面试题库 >

Java代理中的Java NullPointerException

杨雪松
2023-03-14
问题内容

我正在开发Java代理。我有一个NullPointerException错误,我认为应该不会发生。

这是调试控制台消息:

java.lang.NullPointerException
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:719)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:646)
    at COM.ibm.JEmpower.applet.http.HttpURLConnection.getInputStream(HttpURLConnection.java:411)
    at COM.ibm.JEmpower.applet.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:703)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:399)
    at JavaAgent.NotesMain(JavaAgent.java:16)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)

这是Java代理中的代码

import lotus.domino.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
public class JavaAgent extends AgentBase {

    public void NotesMain() {
      String strAux = "[A Working URL]";
      try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();

          // (Your code goes here)

          HttpURLConnection httpCon = (HttpURLConnection) new URL(strAux).openConnection();

          httpCon.setRequestMethod("HEAD");
          httpCon.setConnectTimeout(20000);  
          httpCon.setReadTimeout(20000);

          httpCon.connect();

          System.out.println(HttpCon.getURL().toString());

          int responsecode = httpCon.getResponseCode();
          System.out.println("Response code is " + responsecode + " - " + httpCon.getResponseMessage());
      } catch(Exception e) {
          e.printStackTrace();
      }
    }

}

基本上,错误指向System.out.println("Response code is " + httpCon.getResponseCode() + " - " + httpCon.getResponseMessage());

事实是,URL是有效的链接,因为我已经通过在浏览器中进行访问尝试了它。

此错误的可能原因是什么?在我创建用于测试的本地Notes数据库上,它的效果不佳。但是,在注释中未开发的普通Java程序中,它可以工作。


问题答案:

在发送任何内容之前获取响应代码毫无意义。您应该先发送请求,然后获取响应代码,然后根据需要获取响应



 类似资料:
  • 本文向大家介绍Java中的代理原理及代理使用示例,包括了Java中的代理原理及代理使用示例的使用技巧和注意事项,需要的朋友参考一下 今天再测试Socket编程时,无法连接外网。公司用的是Http的代理。上网搜索也没看太懂,所以花了大量时间来学习。看了HTTP和TCP协议的关系好,才有所明白。现在能通过Socket使用HTTP代理了,结果很简单,过程却好难。 1. 先简要说说HTTP和TCP(具体内

  • 本文向大家介绍如何在Java中处理Selenium中的代理?,包括了如何在Java中处理Selenium中的代理?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助PROXY类在Java中使用Selenium处理代理。

  • 问题内容: 对于我的Java游戏服务器,我发送数据包的操作ID,该操作ID基本上告诉服务器该数据包的用途。我想将每个动作ID(一个整数)映射到一个函数。有没有不用开关就可以做到这一点的方法? 问题答案: 这个如何? (如果需要传递一些参数,请使用具有合适参数的函数定义自己的接口,并使用该接口代替Runnable)。

  • 本文向大家介绍java中动态代理的实现,包括了java中动态代理的实现的使用技巧和注意事项,需要的朋友参考一下 动态代理的实现 使用的模式:代理模式。 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。类似租房的中介。 两种动态代理: (1)jdk动态代理,jdk动态代理是由Java内部的反射机制来实现的,目标类基于统一的接口(InvocationHandler) (2)cglib动

  • 我想设置一个需要验证的代理。我已经使用了代理对象和< code>option.setProxy(),但仍然提示我使用验证窗口。 当我在代理url中指定(<code>用户名:pwg@ip:端口),则根本不考虑代理(使用Wireshark检查)。 这是我的代码:

  • 本文向大家介绍十分钟理解Java中的动态代理,包括了十分钟理解Java中的动态代理的使用技巧和注意事项,需要的朋友参考一下 若代理类在程序运行前就已经存在,那么这种代理方式被成为 静态代理 ,这种情况下的代理类通常都是我们在Java代码中定义的。 通常情况下, 静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类。 一、概述 1. 什么是代理 我们大家都知道微商代理,简单地说就是代替厂家卖