WSO2(JSON) Google Book API с JAVA
Я делаю небольшой проект, в соответствии с которым мне необходимо использовать веб-сервисы API Google Book для получения определенной информации и последующей проверки (не выполнял часть проверки, но застрял в части API)
Пожалуйста, найдите ниже мой код
package au.edu.swin.waa;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.Iterator;
import javax.xml.stream.XMLStreamException;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
public class GoogleBooksJSONClient {
/**
* @param args
* @throws AxisFault
*/
public static void main(String[] args) throws AxisFault {
// 1st invocation ...
String epr = "https://www.googleapis.com/books/v1/volumes?q=isbn:0131465759&key=MYAPIKEY";
EndpointReference targetEPR = new EndpointReference(epr);
Options options = new Options();
options.setTo(targetEPR);
options.setProperty(Constants.Configuration.MESSAGE_TYPE, "application/json");
options.setProperty(Constants.Configuration.HTTP_METHOD, Constants.Configuration.HTTP_METHOD_GET);
options.setAction(null); // important
File configFile = new File("axis2.xml");
ConfigurationContext clientConfigurationContext;
clientConfigurationContext = ConfigurationContextFactory
.createConfigurationContextFromFileSystem(null, configFile.getAbsolutePath());
ServiceClient sender = new ServiceClient(clientConfigurationContext, null);
sender.setOptions(options);
OMElement response = sender.sendReceive(null); // no payload
System.out.println("returned from 1st call to google books.");
processResponsePayload(response);
}
private static void processResponsePayload(OMElement response) {
// testing if there is anything returned ...
System.out.println("to string: "+response.toString());
System.out.println("get text: "+response.getText());
Iterator iterator = response.getChildrenWithLocalName("return");
OMElement returnElement = (OMElement) iterator.next();
System.out.println(returnElement.getText());
}
}
Я запускаю это, и я продолжаю получать это вместо полного файла JSON
<kind>books#volumes</kind>
и независимо от того, какую итерацию я пробую, я не могу получить ничего, кроме этого. Я попытался изменить номер ISBN, API, используя для циклов, итератор, я получаю только один элемент, который является
книги # тома
вместо того, что должно быть здесь ( https://www.googleapis.com/books/v1/volumes?q=isbn:1781100233)
Отсюда я прочитал, что вы должны добавить JSONStreamBuilder и JSONStreamFormatter в файл axis2.xml, но это не работает, мне все еще дают только первую строку.
Как я могу получить другие строки?