我正在努力使现有的小型网站与Ariba打孔软件兼容。
我可以阅读传入的设置,进行响应,然后将其重定向到有效的登录名,再返回到网站。
在Ariba打孔测试仪上,所有这些都可以正常工作,并且可以将商品添加到购物车中。
我正在尝试完成该过程并将PunchOutOrderMessage发送回购物车。
在cXML文档示例中,它具有以下格式:
<input type="hidden" name="cxml-urlencoded" value="<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
....等
我已经配置了相同的消息,但是具有正确的购物车详细信息。
尽管我不知该如何将其发送回Ariba站点。进行打孔会提供表单POST URL,我应该将其发送回表单。
我尝试了以下方法:How to make HTTP POST web request连接到Web服务器,但不确定如何处理该消息。我刚刚将其加载为文本:
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateRemoteCertificate);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var content = new StringContent(strPost);
var response = await client.PostAsync(PostURL, content);
var responseString = await response.Content.ReadAsStringAsync();
检查ResponseString仅提供了Ariba的完整网页,就像我刚刚手动访问该网站一样。
嵌入式浏览器仅在打孔站点上保持打开状态,并且不会随处可见。
有人成功连接回Ariba网站并发布订单吗?
答案 0 :(得分:0)
我在寻找有关此步骤的问题的答案时遇到了这个问题,但总比没有好。
这对我有用(HOOK_URL是Ariba提供的URL)-保留您的服务点管理器代码:
byte[] response = Encoding.ASCII.GetBytes(output);
var request = (HttpWebRequest)WebRequest.Create(poom.HOOK_URL);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
try
{
request.GetRequestStream().Write(response, 0, response.Length);
}
catch (Exception ex)
{
LogHelpers.Write(log, ex);
}
WebResponse webresponse = null;
try
{
webresponse = request.GetResponse();
}
catch (Exception ex)
{
LogHelpers.Write(log, ex);
}
我的问题是如何处理他们的响应,这是一个简短的脚本(