2017-02-28 4 views
0

Ich versuche, den Autorisierungs-Token zum Senden von Push-Benachrichtigungen an die mobile App über den MobileFirst Foundation 8.0 Server zu erhalten. Ich habe den folgenden Code geschrieben, um die Anfrage zu senden, aber ich bin nicht sicher, wo ich Dinge bin Unordnung, weil die Antwort, die ich erhalte nicht das Token enthält:Ich kann MobileFirst 8.0 nicht aufrufen. PushNotification Rest Endpoint

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.HttpHost; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.protocol.HTTP; 
import org.apache.wink.client.ClientConfig; 
import org.apache.wink.client.ClientResponse; 
import org.apache.wink.client.Resource; 
import org.apache.wink.client.RestClient; 
    public class SendPushNotification { 
     private String MFP_SERVER_URL = "1.2.3.4"; 
     private int MFP_SERVER_PORT = 1234; 
     private static String URI_GET_TOKEN = "mfp/api/az/v1/token"; 
     private static String URI_SEND_MESSAGE = "imfpush/v1/apps/my.app/messages"; 
     private HttpClient client = new DefaultHttpClient(); 
     private HttpHost host = new HttpHost(MFP_SERVER_URL,MFP_SERVER_PORT,"http");; 
     private HttpPost post; 
     public HttpResponse invokeRestfulService(String uri) throws ClientProtocolException, IOException{ 
     List<BasicNameValuePair> parametersBody = new ArrayList<BasicNameValuePair>(); 
     parametersBody.add(new BasicNameValuePair("grant_type","client_credentials")); 
     parametersBody.add(new BasicNameValuePair("scope","access.sendMessage push.application.my.app messages.write")); 

     post = new HttpPost(uri); 
     post.setHeader("Authorization", "Basic Z292Lm1zLmFjY2Vzcy5wdXNoY2xpZW50OjJmaWxldWkudWF0"); 
     post.setHeader("Content-type", "application/x-www-form-urlencoded"); 
     post.setEntity(new UrlEncodedFormEntity(parametersBody, HTTP.UTF_8)); 

     return client.execute(host,post); 
     } 

     public static void main(String[] args) throws ClientProtocolException, IOException{ 
     SendPushNotification notification = new SendPushNotification(); 
     HttpResponse httpResponse = notification.invokeRestfulService(URI_GET_TOKEN); 
     System.out.println(httpResponse); 
     notification.restClient(); 
     } 

     public void restClient(){ 
     ClientConfig config = new ClientConfig(); 
     config.setBypassHostnameVerification(true); 
     RestClient restClient = new RestClient(config); 

     Resource unprotectedResource = restClient.resource("http://"+MFP_SERVER_URL + ":" + MFP_SERVER_PORT); 
     unprotectedResource.header("Content-Type", "application/x-www-form-urlencoded"); 
     unprotectedResource.header("Authorization", "Basic Z292Lm1zLmFjY2Vzcy5wdXNoY2xpZW50OjJmaWxldWkudWF0"); 

     unprotectedResource.attribute("grant_type", "client_credentials"); 
     unprotectedResource.attribute("scope", "access.sendMessage push.application.gov.ms.tofileui messages.write"); 

     ClientResponse clientResponse = unprotectedResource.contentType("application/x-www-form-urlencoded").accept("*/*").post(URI_GET_TOKEN); 

     System.out.println(clientResponse.getEntity(String.class)); 

     } 
    } 

Ich habe versucht 2 verschiedene Arten des Sendens die Anfrage, aber die Antwort, die ich bekomme, ist 400-Bad Request.

+0

Hallo Prerak. Wie bei Ihren anderen aktuellen/verwandten Post, eine Spur wäre hier sehr hilfreich. Bitte hängen Sie es an und das wird uns helfen festzustellen, was das Problem sein könnte. Vielen Dank! –

Antwort

0

Versuchen Sie, String URI_GET_TOKEN = "mfp/api/az/v1/Token" zu String URI_GET_TOKEN = "/ mfp/api/az/v1/Token"

Verwandte Themen