86183
2022-09-09 0d999e33085c0a25c5525242748f6aa62a401159
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.dsh.utils.push;
 
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
 
public class PushClient {
 
    // The user agent
    protected final String USER_AGENT = "Mozilla/5.0";
 
    // This object is used for sending the post request to Umeng
    protected HttpClient client = new DefaultHttpClient();
 
    // The host
    protected static final String host = "http://msg.umeng.com";
 
    // The upload path
    protected static final String uploadPath = "/upload";
 
    // The post path
    protected static final String postPath = "/api/send";
 
    public boolean send(UmengNotification msg) throws Exception {
        String timestamp = Integer.toString((int)(System.currentTimeMillis() / 1000));
        msg.setPredefinedKeyValue("timestamp", timestamp);
        String url = host + postPath;
        String postBody = msg.getPostBody();
        String sign = DigestUtils.md5Hex(("POST" + url + postBody + msg.getAppMasterSecret()).getBytes("utf8"));
        url = url + "?sign=" + sign;
        HttpPost post = new HttpPost(url);
        post.setHeader("User-Agent", USER_AGENT);
        StringEntity se = new StringEntity(postBody, "UTF-8");
        post.setEntity(se);
        // Send the post request and get the response
        HttpResponse response = client.execute(post);
        int status = response.getStatusLine().getStatusCode();
        System.out.println("Response Code : " + status);
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        StringBuffer result = new StringBuffer();
        String line = "";
        while ((line = rd.readLine()) != null) {
            result.append(line);
        }
        System.out.println(result.toString());
        if (status == 200) {
            System.out.println("Notification sent successfully.");
        } else {
            System.out.println("Failed to send the notification!");
        }
        return true;
    }
 
//    // Upload file with device_tokens to Umeng
//    public String uploadContents(String appkey,String appMasterSecret,String contents) throws Exception {
//        // Construct the json string
//        JSONObject uploadJson = new JSONObject();
//        uploadJson.put("appkey", appkey);
//        String timestamp = Integer.toString((int)(System.currentTimeMillis() / 1000));
//        uploadJson.put("timestamp", timestamp);
//        uploadJson.put("content", contents);
//        // Construct the request
//        String url = host + uploadPath;
//        String postBody = uploadJson.toString();
//        String sign = DigestUtils.md5Hex(("POST" + url + postBody + appMasterSecret).getBytes("utf8"));
//        url = url + "?sign=" + sign;
//        HttpPost post = new HttpPost(url);
//        post.setHeader("User-Agent", USER_AGENT);
//        StringEntity se = new StringEntity(postBody, "UTF-8");
//        post.setEntity(se);
//        // Send the post request and get the response
//        HttpResponse response = client.execute(post);
//        System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
//        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
//        StringBuffer result = new StringBuffer();
//        String line = "";
//        while ((line = rd.readLine()) != null) {
//            result.append(line);
//        }
//        System.out.println(result.toString());
//        // Decode response string and get file_id from it
//        JSONObject respJson = new JSONObject(result.toString());
//        String ret = respJson.getString("ret");
//        if (!ret.equals("SUCCESS")) {
//            throw new Exception("Failed to upload file");
//        }
//        JSONObject data = respJson.getJSONObject("data");
//        String fileId = data.getString("file_id");
//        // Set file_id into rootJson using setPredefinedKeyValue
//
//        return fileId;
//    }
 
}