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, но это не работает, мне все еще дают только первую строку.

Как я могу получить другие строки?

0 ответов

Другие вопросы по тегам