#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> , который работает сейчас