使用Java向Eloqua通过RestAPI提交FormData

时间:2015-07-15 14:44:40

标签: java rest eloqua

我正在尝试使用Java通过RestAPI提交FormData。我可以使用我的代码创建新的联系人,但是当我将其更改为POST到表单时,我无法弄清楚填充表单的JSON格式应该是什么。

这是我收到的错误。

java.io.IOException: Server returned HTTP response code: 401 for URL:
    https://secure.eloqua.com/API/REST/2.0/data/form/175
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at SaveFormData.main(SaveFormData.java:37)

这是我正在尝试的。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;


public class SaveFormData {


  public static void main(String[] args) {


  try {
  String authString = "siteid\\username" + ":" + "password";
  String authToken = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(authString.getBytes());      
  String response ="";
  String line;
  String body =     "{\"fieldValues\":[{\"id\":0,\"value\":\"asdfasdf\",\"type\":\"FieldValue\"}],\"type\":\"FormData\"}";

  URL url = new URL("https://secure.eloqua.com/API/REST/2.0/data/form/175");
  HttpURLConnection conn = (HttpURLConnection) url.openConnection();


  conn.setInstanceFollowRedirects(false);
  conn.setRequestMethod("POST");
  conn.setRequestProperty("Content-Type", "application/json");
  conn.setRequestProperty("Accept", "application/json");
  conn.setRequestProperty("Authorization", authToken);    


  conn.setDoOutput(true);
  final OutputStream os = conn.getOutputStream();
  os.write(body.getBytes());
  os.flush();
  os.close();


  InputStream is = conn.getInputStream();
  BufferedReader rd = new BufferedReader(new InputStreamReader( is));
  while ((line = rd.readLine()) != null)
  {
  response += line;
  }       
  rd.close();
  conn.disconnect();


  System.out.println(response);


  } catch (MalformedURLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  } catch (ProtocolException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }


  }


}

0 个答案:

没有答案