Hi Folks,

I wrote a Java application that will upload a file to the WSO2 API Manager
via request. The Java code uses Apache HttpClient library version 4.3.2
I was tried to invoke upload document API call [1
<https://docs.wso2.com/display/AM170/Publisher+APIs#PublisherAPIs-Add/UpdateanAPIDocument>]
, it seems it won't executing as I expected.
*Source *

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.wso2.sample.doc.authentication.AuthenticationAdminServiceClient;
import org.wso2.sample.doc.constants.APIConstantValues;
import org.wso2.sample.doc.singleton.HttpClientSingleton;

public class UploadDocument {

 public static final String ADD_DOC_API_CALL =
"https://"; + APIConstantValues.HOST_NAME + ":" +
APIConstantValues.HTTPS_PORT +
 
"/publisher/site/blocks/documentation/ajax/docs.jag?action=addDocumentation&mode='-'&"
+
 "provider=subscriber1&apiName=TestDocAPI&version=1.0.0&docName=attachment&"
+
 "docType=how+to&sourceType=file&docUrl='-'&summary=testing";
 public static final String LOGIN_API_CALL =
"https://"; + APIConstantValues.HOST_NAME + ":" +
APIConstantValues.HTTPS_PORT +
 "/publisher/site/blocks/user/login/ajax/login.jag?action=login&username=" +
 APIConstantValues.USER_NAME + "&password=" + APIConstantValues.PASSWORD;
public static final String FILE_PATH = "/home/pubudu/Desktop/t";

public static void main(String[] args) {

AuthenticationAdminServiceClient
 .setSystemProperties(APIConstantValues.CLIENT_TRUST_STORE_PATH,
             APIConstantValues.KEY_STORE_TYPE,
             APIConstantValues.KEY_STORE_PASSWORD);
HttpClient httpClient = HttpClientSingleton.getHttpClientInstance();
HttpPost request = new HttpPost(LOGIN_API_CALL); HttpPost docRequest = new
HttpPost(ADD_DOC_API_CALL); HttpResponse response =
httpClient.execute(request); System.out.println("Http Status Code := " +
response.getStatusLine()); for (Header header : response.getAllHeaders()) {
if (header.getName().equals("Set-Cookie")) { docRequest.setHeader("Cookie",
header.getValue().split(";", 2)[0]);
System.out.println(header.getValue().split(";", 2)[0]); }
System.out.println(header); } System.out.println(); File document = new
File(FILE_PATH); MultipartEntity multipartEntity = new MultipartEntity();
System.out.println(document.getAbsolutePath()); System.out.println();
multipartEntity.addPart("docLocation", new
StringBody(document.getAbsolutePath())); ContentBody fileBody = new
FileBody(document, "text/plain"); multipartEntity.addPart("attachment",
fileBody); docRequest.setEntity(multipartEntity); for (Header header :
docRequest.getAllHeaders()) { System.out.println(header); }
System.out.println(); System.out.println("executing request " +
docRequest.getRequestLine()); HttpResponse docResponse =
httpClient.execute(docRequest); System.out.println("Http Status Code := " +
docResponse.getStatusLine()); for (Header header :
docResponse.getAllHeaders()) { System.out.println(header); }
System.out.println();

}
 }

*Constants *

public class APIConstantValues {

public static final String CLIENT_TRUST_STORE_PATH =

"/home/pubudu/Development/Workspace/Support/Sample/DocumentAPI/src/main/resources/security/client-truststore.jks";
 public static final String HOST_NAME = "localhost";
public static final String HTTPS_PORT = "9453";
 public static final String USER_NAME = "admin";
public static final String PASSWORD = "admin";
 public static final String KEY_STORE_PASSWORD = "wso2carbon";
 public static final String KEY_STORE_TYPE = "jks";
}

*Response headers*

 Http Status Code := HTTP/1.1 200 OK

JSESSIONID=C912CF9F73C6DC1C04F8BA1C877C6D4D

Set-Cookie: JSESSIONID=C912CF9F73C6DC1C04F8BA1C877C6D4D; Path=/publisher/;
Secure; HttpOnly

Content-Type: application/json;charset=UTF-8

Content-Length: 17

Date: Mon, 04 Aug 2014 05:28:54 GMT

Server: WSO2 Carbon Server


/home/pubudu/Desktop/t


Cookie: JSESSIONID=C912CF9F73C6DC1C04F8BA1C877C6D4D


executing request POST
https://localhost:9453/publisher/site/blocks/documentation/ajax/docs.jag?action=addDocumentation&mode='-'&provider=subscriber1&apiName=TestDocAPI&version=1.0.0&docName=attachment&docType=how+to&sourceType=file&docUrl='-'&summary=testing
HTTP/1.1

Http Status Code := HTTP/1.1 200 OK

Content-Type: application/json;charset=UTF-8

Content-Length: 53

Date: Mon, 04 Aug 2014 05:28:54 GMT

Server: WSO2 Carbon Server



 Please advice as to how I should go about handling this.

[1]
https://docs.wso2.com/display/AM170/Publisher+APIs#PublisherAPIs-Add/UpdateanAPIDocument

-Pubudu
-- 
*Pubudu Dissanayake*
 Software Engineer
​​


WSO2 Inc.; http://wso2.com
lean.enterprise.middleware
Mob: + 94 775 503 304

Blog: http://geekdetected.wordpress.com/
 Linkedin: *http://lk.linkedin.com/in/pubududissanayake*
<http://lk.linkedin.com/in/pubududissanayake>
Flickr : https://www.flickr.com/photos/pubudufx/
Twitter: https://twitter.com/GeekInAction
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to