我试图将我的cURL转换为GCM通知推送到Retrofit功能,但我不确切知道如何。 我的cURL看起来像这样:
curl --header "Authorization: key=KKK" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"XXX\"]}"
其中KKK = key,而XXX = userRegistrationToken。
我在那里丢失了消息,因为我没有找到该怎么做,但一般来说这个cURL有效。我想用(通知)消息做同样的事情。
我尝试过这样的事情:
//GCM_ENDPOINT = "https://android.googleapis.com";
@FormUrlEncoded
@POST("/gcm/send")
void sendNotification(
@Header("Authorization") String key,
@Header("Content-Type") String contentType,
@Field("message") String message,
Callback<Object> response);
我不知道到目前为止这是否正确,但它缺少我想发送的通知消息,我甚至不知道如何处理这个 -d registration_ids ,尤其是当我想要在那里放几个ids。提前谢谢。
答案 0 :(得分:0)
好的,我设法找到了一个解决方案,即使它不是通过直接转换cURL,它确实可以正常工作:
@POST("/gcm/send")
@Headers({"Content-Type: application/json"})
void sendNotification(
@Header("Authorization") String apiKey,
@Body TypedInput jsonBodyInput,
Callback<NotificationResult> response);
NotificationResult 是我的自定义gson类, apiKey 必须与&#34; key =&#34;前缀(例如:String apiKey =&#34; key =&#34; +&#34; XXX&#34 ;;)。另外,重要的是将 jsonBodyInput 设为TypedInput,如下所示:
TypedInput requestBody = new TypedByteArray("application/json", jsonString.getBytes(Charset.forName("UTF-8")));
如何 jsonString 看起来像here