Почему HttpClient.execute возвращает null?

#java #httpclient #httpcontext #cisco

#java #httpclient #httpcontext #cisco

Вопрос:

Ниже приведен мой фрагмент кода:

 private HttpClient httpClient;
private CookieStore APICookieStore;
private HttpHost targetHost;
private AuthCache authCache;
private CredentialsProvider credentialsProvider;

httpClient = HttpClients.createDefault();
nxAPICookieStore = new BasicCookieStore();
targetHost = new HttpHost(swtch.getHostIP(), 80, "http");
authCache = new BasicAuthCache();
authCache.put(targetHost, new BasicScheme());
credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
    new UsernamePasswordCredentials(swtch.getUserName(), swtch.getPassword()));
HttpPost post = new HttpPost("/ins");
HttpClientContext context = HttpClientContext.create();
context.setCredentialsProvider(credentialsProvider);
context.setAuthCache(authCache);
context.setCookieStore(APICookieStore);
// JSON command that needs to be sent across
StringEntity postBody = new StringEntity(parsedString,"UTF-8");
post.setEntity(postBody);
// Execute send and receive to remote switch
JsonNode returnNode = httpClient.execute(targetHost, post, this, context);
  

parsedString :

 { "ins_api" : { "version" : "1.0", "type": "cli_conf", "chunk": "0", "sid": "1", "input": "show clock", "output_format": "json" } }
  

Я не уверен, чего здесь не хватает; все данные кажутся правильными, но значение returnNode равно: null .

Комментарии:

1. Внутри parsedString , каковы предполагаемые типы свойств chunk и sid ? Они были определены как string значения (потому что они заключены в двойные кавычки), но выглядят так, как будто любое из них (или оба) должны быть числовыми. Если это так, удалите двойные кавычки — числовые значения свойств представлены без кавычек JSON . То же правило применяется и к значению: null .

2. проблема заключалась в том, что я не переопределил handleResponse()после реализации ResponseHandler<JsonNode> , который работает сейчас