Basic HTTP Authentication

When you use http://<host>:8000/dcn/DCNServlet, the user authentication is done by Unwired Server extracting the user information from the request parameter.

username=<username>
password=<password>

Alternatively, you can use HTTP BASIC authentication instead of sending the username and password as part of the URL. To use HTTP BASIC authentication, the URL is http://<hostname>:<port>/dcn/HttpAuthDCNServlet, as this example illustrates:

URL url = new URL("http://<host>:8000/dcn/HttpAuthDCNServlet?cmd=dcn&package=<package_name>:<package_version>");
        HttpURLConnection huc = (HttpURLConnection) url.openConnection();
        huc.setDoOutput(true);
        huc.setRequestMethod("POST");
        final String login = "<login_name_of_user_with_DCN_role>";
        final String pwd = "<password_of_user_with_DCN_role>";
        Authenticator.setDefault(new Authenticator()
        {
            protected PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication(login, pwd.toCharArray());
            }
        });
        String dcnRequest = "{\"pkg\":\"<package_name>:<package_version>"\","
                + "\"messages\":[{\"id\":\"1\",\"mbo\":\"CustomerState\",\"op\":\":upsert\","
                + "\"cols\":{\"id\":\"1020\",\"fname\":\"Paul\",\"city\":\"Rutherford\"}}]}";
        StringBuffer sb = new StringBuffer();
        sb.append(dcnRequest);
        OutputStream os = huc.getOutputStream();
        os.write(sb.toString().getBytes());
        os.close();
        BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream()));
        System.out.println(huc.getURL());
        huc.connect();
        String line = br.readLine();
        while (line != null)
        {
            System.out.print(line);
            line = br.readLine();
        }

HTTP POST and DCN

You can also use the URL http://<hostname>:8000/dcn/HttpAuthDCNServlet if you do not want to send the DCN request as a request parameter but as an HTTP POST body instead.

If you are using HTTP BASIC authentication, the JSON encoded DCN request is always sent as the HTTP POST body.