Below are sample codes that can be used to invoke a POST method to a RESTlet
RESTlet code:
function restPost(datain){
var process = new Object();
process.success = 'Welcome to '+datain.name+'!';
return process;
}
Java code:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class rest_post {
 public static void main(String args[]) throws IOException {
  // Set Credentials
  String account = "AccountNumber";
  String email = "Username";
  String pass = "Password";
  String role = "3"; // 3 is the role id for Administrators
  // Set the external URL of the RESTlet found on its deployment page.
  URL url = new URL(
    "https://rest.netsuite.com/app/site/hosting/restlet.nl?script=431&deploy=1");
  HttpsURLConnection urlConn = (HttpsURLConnection) url.openConnection();
  // Set the parameters to be passed to the RESTlet
  String postParam = "{\"name\": \"NetSuite\"}";
urlConn.setRequestMethod("POST");
  urlConn.setDoOutput(true);
  urlConn.setDoInput(true);
  urlConn.setRequestProperty("Content-Type", "application/json");
  urlConn.setRequestProperty("Host", "https://rest.netsuite.com");
  urlConn.setRequestProperty("Authorization", "NLAuth nlauth_account="
    + account + ", nlauth_email=" + email + ",nlauth_signature="
    + pass + ", nlauth_role=" + role);
  // Send request
  DataOutputStream wr = new DataOutputStream(urlConn.getOutputStream());
  wr.writeBytes(postParam);
  wr.flush();
  wr.close();
  // Get Response
  InputStream is = urlConn.getInputStream();
  BufferedReader rd = new BufferedReader(new InputStreamReader(is));
  String line;
  StringBuffer response = new StringBuffer();
  while ((line = rd.readLine()) != null) {
   response.append(line);
   response.append('\r');
  }
  rd.close();
  System.out.println(response.toString());
// Output should look like this, {"success":"Welcome to NetSuite!"}
 }
}
 
No comments:
Post a Comment