java中的电子邮件集成钩子
我们有一个简单的要求,即当电子邮件发送到我们的组织id时,能够在PivotalTracker中创建一个故事,如saybugs@my-org.com 我可以找到一些或基于ruby的包装器,但java中没有可以在我们的GAE应用程序上运行的东西。如果存在此类解决方案,有何建议 这里有一些api的提及 代码在curl中java中的电子邮件集成钩子,java,google-app-engine,pivotaltracker,Java,Google App Engine,Pivotaltracker,我们有一个简单的要求,即当电子邮件发送到我们的组织id时,能够在PivotalTracker中创建一个故事,如saybugs@my-org.com 我可以找到一些或基于ruby的包装器,但java中没有可以在我们的GAE应用程序上运行的东西。如果存在此类解决方案,有何建议 这里有一些api的提及 代码在curl中 curl -H "X-TrackerToken: $TOKEN" -X POST -H "Content-type: application/xml" \ -d "<st
curl -H "X-TrackerToken: $TOKEN" -X POST -H "Content-type: application/xml" \
-d "<story><story_type>feature</story_type><name>Fire torpedoes</name><requested_by>James Kirk</requested_by></story>" \
http://www.pivotaltracker.com/services/v3/projects/$PROJECT_ID/stories
curl-H“X-TrackerToken:$TOKEN”-X POST-H“内容类型:application/xml”\
-d“特技火力鱼雷詹姆斯·柯克”\
http://www.pivotaltracker.com/services/v3/projects/$PROJECT\u ID/故事
不确定如何在java中实现这一点?您需要做两件事:
String pivotalUrl = "http://www.pivotaltracker.com/services/v3/projects/"+projectID+"/stories"
String body = "<story><story_type>feature</story_type><name>Story name</name><requested_by>James Kirk</requested_by></story>"
URLFetchService fetchService = URLFetchServiceFactory.getURLFetchService();
HTTPRequest request = new HTTPRequest(pivotalUrl, HTTPMethod.POST, FetchOptions.Builder.withDeadline(30));
request.addHeader(new HTTPHeader("X-TrackerToken","putTokenHere"));
request.addHeader(new HTTPHeader("Content-type","application/xml"));
HTTPResponse response = fetchService.fetch(request);
if (response.getResponseCode() != 200) {
// something went wrong
}
String pivotalUrl=”http://www.pivotaltracker.com/services/v3/projects/“+projectID+”/stories”
字符串正文=“featureStory名称James Kirk”
URLFetchService fetchService=URLFetchServiceFactory.getURLFetchService();
HTTPRequest请求=新的HTTPRequest(pivotalUrl、HTTPMethod.POST、FetchOptions.Builder.withDeadline(30));
addHeader(新的HTTPHeader(“X-TrackerToken”、“Puttokenher”);
addHeader(新的HTTPHeader(“内容类型”、“应用程序/xml”);
HTTPResponse response=fetchService.fetch(请求);
if(response.getResponseCode()!=200){
//出了点问题
}
我将主体添加为request.setPayload(body.getBytes());此外,这些东西是否可以在本地服务器上进行测试,因为我听说很多API只是在打印响应代码时进行模拟,所以我发现它返回时无法创建故事,因为响应代码是:422,根据wiki的说法,这意味着422个不可处理的实体(WebDAV;RFC 4918)。请求格式正确,但由于语义错误而无法遵循。有什么建议吗?是的,您可以模拟从dev服务器发送电子邮件:
http://localhost:8080/_ah/admin/inboundmail
很抱歉你误会了我。。。当我试图通过url获取发送故事时,我看到上面提到的422错误。关于为什么会发生这种情况有什么帮助吗?我还发布了我的确切代码,你应该能够手动执行Http请求。当它工作时,然后使用URLFetch将其放入代码中。