Выполнить сценарий предварительного запроса от Почтальона в Java - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь создать приложение, которое запускает API Postman на Java. Я нахожусь в точке, где у меня есть вся информация, и я пытаюсь сделать запрос и получить ответ. Я получил код API от Postman, как показанониже:

package com.example.tool.postman;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;

public class PostmanExample {

        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
                .url("{{url}}/example1/{{example2}}/endpoint/endpoint")
                .get()
                .addHeader("Content-Type", "application/json")
                .addHeader("Authorization",
                        "aValue Credential={{credential}}/example/example/example/_request,SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date,Signature={{signature}}")
                .addHeader("example", "{{exampleValue}}")
                .addHeader("appAgent", "Postman")
                .addHeader("cache-control", "no-cache")
                .addHeader("Postman-Token", "aPostmanToken")
                .build();

        Response response = client.newCall(request).execute();

    public PostmanExample() throws IOException {
    }

    public Request getRequest() {
            return request;
        }

        public Response getResponse() {
            return response;
        }

}

Я делаю вызов в другом классе, как показано ниже:

package com.example.tool.controller;

import com.example.tool.PostmanExample

import java.io.IOException;

public class ToolExample extends PostmanExample {


    public ToolExample() throws IOException {
    }

    public static void main(String[] args) throws IOException {
        PostmanExample postmanExample = new PostmanExample();
        System.out.println(postmanExample.getResponse().toString());
    }
}

Проблема в том, что перед выполнением запроса у меня есть сценарий предварительного запроса в почтальоне, которыйделает следующее:

console.log('Pre-request Script');
eval(environment['prerequest_signing_script']);
var key = environment['keyvalue'];
var keyname = environment['keyname'];
functions.signCall(request, key, keyname);

Как я могу выполнить этот сценарий предварительного запроса в Java или подписать мой вызов, передав эти два параметра?

1 Ответ

0 голосов
/ 12 июня 2019

Этого нельзя сделать в Java, лучше всего использовать Newman.Создайте свою коллекцию и выполните ее через Ньюмена.Если вам нужна Java по определенной причине, я бы обернул исполняемый файл Newman в Java-программу.

Хорошая статья для начала:

https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...