Как установить заголовки HTTP-запроса в JBPM - PullRequest
0 голосов
/ 05 марта 2019

Я хочу установить заголовки HTTP-запроса в JBPM.Я пытаюсь получить запросы от почтальона, и это работает ... Я сделал простой пример, используя java, и теперь он работает. Мне нужно отправить заголовки, такие как почтальон, существует что-то вроде:

workItem.setParameter ("Заголовки ", Заголовки);

enter image description here

Код работает:

import java.util.Map;
import org.drools.core.process.instance.impl.WorkItemImpl;
import org.jbpm.process.workitem.rest.RESTWorkItemHandler;
import org.kie.api.runtime.process.WorkItem;
import org.kie.api.runtime.process.WorkItemHandler;
import org.kie.api.runtime.process.WorkItemManager;

public class test {

    public static void main(String[] args) {
        test t=new test();
        System.out.println(t.getFiles("xxx","xxx","xxx","xxx"));
    }

    public String getFiles(String user,String pwd,String site,String path) {
        String result="Error getFiles ";
        try {           
            RESTWorkItemHandler handler = new RESTWorkItemHandler();
            WorkItemImpl workItem = new WorkItemImpl();
            workItem.setParameter("Url", "https://mywebsite.com/sharing/api/v1/files"+"?path="+path);
            workItem.setParameter("Method", "GET");
            // workItem.setParameter("Headers", Headers); Exists ?
            WorkItemManager manager = new TestWorkItemManager(workItem);
            handler.executeWorkItem(workItem, manager);
            int responseCode = (Integer) workItem.getResult("Status");      
            if(responseCode==200) {
                result = (String) workItem.getResult("Result");
            }   
        }catch(Exception e) {
            result+=e.getMessage();
        }
        return result;
    }   
}

class TestWorkItemManager implements WorkItemManager {    
    private WorkItem workItem;

    TestWorkItemManager(WorkItem workItem) {
        this.workItem = workItem;
    }

    @Override
    public void completeWorkItem(long id, Map<String, Object> results) {
        ((WorkItemImpl)workItem).setResults(results);        
    }

    @Override
    public void abortWorkItem(long id) {}

    @Override
    public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {

    }

}

1 Ответ

1 голос
/ 05 марта 2019

После небольшого исследования похоже, что executeWorkItem метод может обрабатывать параметр "Headers". Контент должен выглядеть так:

"HeaderName=HeaderValue;SecondHeaderName=SecondHeaderValue"

Итак, весь вызов метода:

workItem.setParameter("Headers", "usr=yourUsr;pwd=yourPwd");

...