Уча Spring Framework, за да създам клиент на REST уеб услуга, която използва основно удостоверяване и обменя JSON. След много търсене в мрежата написах някакъв код, който работи (по-долу), но сега получавам грешка „Неподдържан тип медия“, тъй като заявките се изпращат с Content-Type text/plain, а не application/json. Не намерих нищо в мрежата, което да показва как да задам Content-Type в заглавката на заявката (без да се изгубя напълно в плевелите). Моят код е:
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
...
BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("login", "password"));
HttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(credentialsProvider).build();
ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
String url = "http://host:8080/path/";
String postBody = getPostInput("filename");
jsonString = restTemplate.postForObject(path, postBody, String.class);
Всякакви насоки ще бъдат много оценени.
Благодаря, Джордж