我创建了一个RESTful web服务(C#,WCF),它实现了以下接口:
public interface ITestService
{
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "?s={aStr}")]
string Test(string aStr);
}
其中,Test()方法只返回给定的内容(或默认的Test字符串)以及调用该方法时的时间戳。
该服务是公开可用的,因此当我在任何浏览器中输入url时:
http://xx.xxx.xxx.xx:41000/TestService/web/
它返回json“test”
字符串(或任何可能使用输入的内容?s=...
在末尾)。
我希望Salesforce将数据发布到此Web服务。
我的apex类看起来是这样的-当在Salesforce中插入一个对象时会触发它:
public class WebServiceCallout
{
@future (callout=true)
public static void sendNotification(String name)
{
HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
Http http = new Http();
req.setEndpoint('http://xx.xxx.xxx.xx:41000/TestService/web/');
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
req.setBody('');
try
{
res = http.send(req);
}
catch(System.CalloutException e)
{
System.debug('Callout error: '+ e);
System.debug(res.toString());
}
}
}
当对象插入Salesforce时,Apex作业部分表示sendNotify()
方法已完成。但该服务从未通过该方法获取POST。(注意:已添加远程站点设置中的服务IP)。
我的语法有问题吗?
(在这个阶段,我只想让Salesforce调用web服务-甚至不向其发布任何内容)
例如,我创建了一个示例控制台应用程序,可以很好地发布到服务中。
internal static void Main(string[] args)
{
Uri address = new Uri("http://xx.xxx.xxx.xx:41000/TestService/web/");
// Create the web request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
// Set type to POST
request.Method = "POST";
request.ContentType = "application/json";
// Create the data we want to send
var postData = "";
// Create a byte array of the data we want to send
var byteData = UTF8Encoding.UTF8.GetBytes(postData);
// Set the content length in the request headers
request.ContentLength = byteData.Length;
// Write data
using (var stream = request.GetRequestStream())
{
stream.Write(byteData, 0, byteData.Length);
}
// Get response
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(
response.GetResponseStream()
).ReadToEnd();
Console.Writeline(responseString);
}
为什么我在Salesforce callout中的Apex类不正确?
我找到问题了。我没有在远程站点设置中指定端口(什么!!)
以上代码示例应该可以完美地工作(至少对我来说是这样)
对今后遇到这种情况的人的提示:
在设置中-
服务(远程站点URL)应采用以下格式-无论您在何处托管它:
http://xx.xxx.xxx.xx:41000
要测试上述代码,请访问:
【你的名字】-
并复制以下行:
WebServiceCallout.sendNotification('Test');
然后单击执行。
代码执行,您应该看到一个执行日志(以及其中的任何错误)。
我正在使用Spring4.0为RESTfulWeb服务创建POC。如果我们只传递字符串或任何其他基本数据类型,它就可以正常工作。 这个很好用。但如果我想将字节流或文件对象传递给函数,我如何编写具有这些参数的函数?我如何编写提供传递字节流的客户端? 我尝试了这个代码,但是得到了415个错误。 客户端代码-使用apache HttpClient
问题内容: 我的问题是我取回了一些数据,但似乎无法显示它。 问题答案: 应该是您收到的内容的类型,但应该是您要发送的内容的哑剧类型,以下应该可以:
我试图理解Spring MVC Restful架构。想知道有多少种方法可以将SpringMVC与RESTfulWeb服务集成在一起。我可以看到其中一个是使用Rest模板。 这是在Spring MVC中使用rest Web服务的唯一方法吗? 我们可以单独使用SpringMVC开发web应用程序而不使用任何web服务吗。 如果我说错了,请指正。 谢谢你的帮助。
hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函
更新时间:2019-05-30 16:03:18 服务开发、调试完成后,需发布到云端,才能被调用。 操作步骤 在服务开发平台,单击页面右上角发布。 在弹出对话框中,填入描述信息后,单击确定。 执行结果服务发布后,IoT Studio为该服务生成默认访问域名。您便可在其他应用开发时使用该服务,或将服务进行商业化使用。 选择页面正上方**发布 > 域名管理**,查看默认域名,或配置自定义域名。
问题内容: 我正在尝试将JSON对象发布到asp.net Web服务。 我的json看起来像这样: 我正在使用json2.js对我的json对象进行stringyfy。 我正在使用jQuery将其发布到我的Web服务。 我收到以下错误: “无效的JSON原语: 我发现了一堆与此相关的帖子,这似乎是一个非常普遍的问题,但我没有尝试解决此问题。 当萤火虫被发布到服务器时,它看起来像这样: marker