Hãy tìm mã sau đây làm việc mà không SSL
Tôi đang sử dụng yêu cầu đặt, nếu cần bài/được chỉ cần thay đổi nó.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javacodegeeks.enterprise.rest.jersey</groupId>
<artifactId>JerseyJSONExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<repositories>
<repository>
<id>maven2-repository.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
<layout>default</layout>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
</project>
Java Class
package com.rest.jersey.jerseyclient;
import com.rest.jersey.dto.Employee;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
import com.sun.jersey.api.client.filter.LoggingFilter;
import com.sun.jersey.api.json.JSONConfiguration;
public class JerseyClient {
public static void main(String[] args) {
try {
String username = "username";
String password = "[email protected]";
//{"userId":"12345","name ":"Viquar","surname":"Khan","email":"[email protected]"}
Employee employee = new Employee("Viquar", "Khan", "[email protected]");
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
Client client = Client.create(clientConfig);
//
final HTTPBasicAuthFilter authFilter = new HTTPBasicAuthFilter(username, password);
client.addFilter(authFilter);
client.addFilter(new LoggingFilter());
//
WebResource webResource = client
.resource("http://localhost:7001/VaquarKhanWeb/employee/api/v1/informations");
ClientResponse response = webResource.accept("application/json")
.type("application/json").put(ClientResponse.class, employee);
if (response.getStatus() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println("Server response .... \n");
System.out.println(output);
} catch (Exception e) {
e.printStackTrace();
}
}
}
POJO
package com.rest.jersey.dto;
public class Employee {
private String name;
private String surname;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee [name=" + name + ", surname=" + surname + ", email=" + email + "]";
}
public Employee(String name, String surname, String email) {
super();
this.name = name;
this.surname = surname;
this.email = email;
}
}
Nguồn
2015-11-03 13:38:13
Đây chính xác là những gì tôi đang tìm kiếm. Tôi đã thêm điều này vào ứng dụng khách của chúng tôi và đã sử dụng Bảo mật mùa xuân trên phần máy chủ. Làm việc rất tao nhã để tăng tính bảo mật cho ứng dụng. – bh5k
Xem câu trả lời bên dưới cho Jersey 2.x – Dejell
Tôi đã làm điều này: 'HTTPBasicAuthFilter feature = new HTTPBasicAuthFilter (restUsername, restPassword); client.addFilter (feature); 'nhưng đối với một số lý do không rõ tôi tiếp tục nhận được tính năng là' null'. Tại sao nó sẽ xảy ra, bất kỳ ý tưởng? – HitchHiker