賣東西少不了展示圖片,通過api上傳圖片還是很簡單的,用的是UploadSiteHostedPicturesRequestType這個API,圖片會在ebay服務器上保存一段時間。首先需要初始化ApiContext,設置appID, certID, devID, userToken, api的相應url,圖片服務的url
1,初始化ApiContext
public static ApiContext getApiContext() throws Exception {
apiContext = new ApiContext();
ApiAccount apiAccount = new ApiAccount();
apiAccount.setApplication(appID);
apiAccount.setCertificate(certID);
apiAccount.setDeveloper(devID);
apiContext.getApiCredential().setApiAccount(apiAccount);
ApiCredential cred = apiContext.getApiCredential();
cred.seteBayToken(GetContext.userToken);
apiContext.setApiServerUrl("https://api.sandbox.ebay.com/wsapi");
apiContext.setEpsServerUrl("https://api.sandbox.ebay.com/ws/api.dll"); // 這個要設置,不然會出錯
return apiContext;
}
paths是圖片的本地位置,方法返回圖片的url地址
public static String[] uploadPicture(String[] paths) throws Exception {
ApiContext apiContext = getApiContext();
PictureService picService = eBayPictureServiceFactory.getPictureService(apiContext);
String[] rt = new String[paths.length];
for (int i = 0; i < paths.length; ++i) {
System.out.println(paths[i]);
String url = picMap.get(paths[i]);
if (url != null) {
rt[i] = url;
continue;
}
PictureInfo picInfo = new PictureInfo();
picInfo.setPictureFilePath(paths[i]);
UploadSiteHostedPicturesRequestType request = new UploadSiteHostedPicturesRequestType();
boolean success = picService.UpLoadSiteHostedPicture(picInfo, request);
if (success) {
rt[i] = new String(picInfo.getURL());
} else
rt[i] = new String(picInfo.getErrorType() + ":" + picInfo.getErrorMessage());
}
return rt;
}