我有以下 DropWizard 资源,它应该发出 Google Cloud Messaging 请求并返回响应。我不断收到未经授权的 401 错误。
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
@Path(value="/gcm")
@Produces(MediaType.APPLICATION_JSON)
public class GcmResource {
Client client;
public GcmResource(Client client) {
this.client = client;
}
@GET
public String sendMsg() {
WebResource r = client.resource("https://android.googleapis.com/gcm/send");
r.header("Authorization", "key=MY_SERVER_API_KEY");
r.accept(MediaType.APPLICATION_JSON);
r.type(MediaType.APPLICATION_JSON);
ClientResponse res = r.post(ClientResponse.class, "{\"registration_ids\":[\"ABC\"]}");
return res.getEntity(String.class);
}
}
- 我正在使用有效的 API 密钥。
- 我的 API 密钥属于“服务器(带有 IP 阻塞)”类型。
- 我在阻止列表中没有 IP。因此,允许所有 IP。
- 我还从我的网络托管服务器运行了上面的代码,我也得到了同样的错误。
我究竟做错了什么?