我正在实现一个与Magento网站接口的自定义解决方案.我的代码是在C#中.我正在尝试使用v2_soap API和xml-rpc APIWeb服务创建产品.我试图使用这两种服务创建产品.我似乎无法成功创建产品.每次服务我都会收到错误消息 [102] Invalid data given. Details in error message..我已经尝试将各种数据传递给api调用,但没有任何运气.我想知道一些事情:
1)在进行Web服务调用时,有没有办法收到有关哪些数据无效的更好的错误消息?错误消息似乎表明我可以到达details某个地方,但我搜索了所有日志,我找不到运气的错误消息数据.
2)使用Web服务添加新产品所需的最低属性是什么?
这是我正在使用的一些代码.这是XML-RPC实施.我正在使用cook计算xml-rpc库.
public int CreateProduct(Product product) {
var entity = ConvertProduct(product);
//int productId = Service.catalogProductCreate(SessionId, "simple", "0", product.Sku, entity);
int productId = XmlRpcService.CallReturnInt(SessionId, "catalog_product.create",
new object[] {
"simple" /* product type */,
0 /* attribute set */,
product.Sku /* sku */,
entity /* product data */
});
return productId;
}
private XmlRpcStruct ConvertProduct(Product product) {
var entity …Run Code Online (Sandbox Code Playgroud) 在为我的网站编写pingback处理程序的过程中,我注意到XML-RPC规范没有说明应该定义哪些错误代码以及它们应该是什么意思.所以问题是,是否有一个普遍接受的故障代码标准来指定这些信息?定义了哪些故障代码,它们的含义是什么?一般用于XML-RPC,还是用于特定应用程序(如pingback)?
我想我知道答案,但我想得到社区的意见(我认为这是很好的参考资料).
使用Python 2.6.4,windows
使用以下脚本,我想测试某个xmlrpc服务器.我调用一个不存在的函数,希望有一个错误的回溯.相反,该功能不会返回.可能是什么原因?
import xmlrpclib
s = xmlrpclib.Server("http://127.0.0.1:80", verbose=True)
s.functioncall()
Run Code Online (Sandbox Code Playgroud)
输出是:
send: 'POST /RPC2 HTTP/1.0\r\nHost: 127.0.0.1:80\r\nUser-Agent: xmlrpclib.py/1.0
.1 (by www.pythonware.com)\r\nContent-Type: text/xml\r\nContent-Length: 106\r\n\
r\n'
send: "<?xml version='1.0'?>\n<methodCall>\n<methodName>functioncall</methodName
>\n<params>\n</params>\n</methodCall>\n"
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Type: text/xml
header: Cache-Control: no-cache
header: Content-Length: 376
header: Date: Tue, 30 Mar 2010 13:27:21 GMT
body: '<?xml version="1.0"?>\r\n<methodResponse>\r\n<fault>\r\n<value>\r\n<struc
t>\r\n<member>\r\n<name>faultCode</name>\r\n<value><i4>1</i4></value>\r\n</membe
r>\r\n<member>\r\n<name>faultString</name>\r\n<value><string>PVSS00ctrl (2), 2
010.03.30 15:27:21.395, CTRL, SEVERE, 72, Function not defined, functioncall
, , \n</string></value>\r\n</member>\r\n</struct>\r\n</value>\r\n</fault>\r\n</m
ethodResponse>\r\n'
Run Code Online (Sandbox Code Playgroud)
(这里程序挂起,直到我杀死服务器才返回)
编辑:服务器使用自己的xmlrpc库以c ++编写
编辑:发现一个看起来像问题http://bugs.python.org/issue1727418的问题
是否有可能创建一个插件,当它处于活动状态时,会向XMLRPC接口添加一个新的"函数"并处理它的调用?
我有一个使用xmlrpc库的android项目.我下载了xmlrpc库并导入到我的eclipse工作区.然后我将它添加到我的android项目中的构建路径并使用它.当我在模拟器中运行时,我收到此错误:"安装错误:INSTALL_FAILED_MISSING_SHARED_LIBRARY".xmlrpc类没有被打包到我的android项目中吗?救命...
如何HTTP Headers使用python xmlrpclib库发送自定义!?我需要http_headers在调用RPC方法时发送一些特殊的自定义.
我想从Java XML-RPC,我在传递关联数组(Hashmap)作为参数时面临问题.这是我的代码.
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(ServeUrl));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
Map map = new HashMap();
map.put(Parameter Name, Parameter Value);
map.put(Parameter Name , Parameter Value);
Object result = client.execute("method name", map);
Run Code Online (Sandbox Code Playgroud) 我已经尝试了很长时间,但它仍然只发布为"未分类",在文档中声明使用整数值作为类别ID,但这不起作用.我也尝试过编写类别名称,并以小写形式输入slug.根据文档我正在做的一切正确,但它仍然无法正常工作! wp.newPost,因为它使用wp_insert_post().
public function create_post( $title, $body )
{
$title = htmlentities( $title, ENT_NOQUOTES, 'UTF-8' );
$content = array(
'post_category' => array( 18 ), // my category id
'post_type' => 'post',
'post_status' => 'pending',
'post_title' => $title,
'post_content' => $body,
'comment_status' => 'closed',
);
$params = array( 0, $this->username, $this->password, $content );
return $this->send_request( 'wp.newPost', $params );
}
Run Code Online (Sandbox Code Playgroud) 我试图用PHP编写简单的XMLRPC服务器.
我已经阅读了一些文档,我发现了最小的实现,类似于:
// /xmlrpc.php file
include "lib/xmlrpc.inc";
include "lib/xmlrpcs.inc";
// function that handles example.add XML-RPC method
function add ($xmlrpcmsg)
{
// ???
$sumResult = $a + $b;
// ???
return new xmlrpcresp($some_xmlrpc_val);
}
// creating XML-RPC server object that handles 1 method
$s = new xmlrpc_server(
array(
"example.add" => array("function" => "add")
));
Run Code Online (Sandbox Code Playgroud)
我怎样才能创造回应?
假设我想要一个整数的响应sumResult,这是XML-RPC调用传递给XMLRPC服务器的参数a和b参数的总和.
我使用PHP XML-RPC 3.0.0beta(我也可以使用2.2.2,但我决定使用3.0.0beta,因为它标记为稳定).
我正在为 WP API 使用 Wordpress 的 XMLRPC API 和 IXR_Library php 类。如果我在帖子的正文/内容中使用纯文本或仅使用简单文本,wp.newPost 工作正常,但是当我发布自动创建的完整 html/短代码内容时,它总是给我这个错误
Array ( [faultCode] => -32700 [faultString] => parse error. not well formed )
Run Code Online (Sandbox Code Playgroud)
我尝试发布的内容是我通常在 WP 中使用短代码的发布内容,但我想使用 API 通过 php 发布它,因为我正在尝试自动化我的博客。
您可以检查我尝试在
http://pastebin.com/U94XVZGT下方发布的正文/内容
这就是在 XML 调试模式下显示的内容(可能看起来已经 html 编码)
下面是通过调试返回的完整 XML 调用和响应,已从中删除用户/通行证
http://pastebin.com/26Nyx97K
我真的很感激任何可能的帮助,我已经尝试过 php 的 htmlentities 和 htmlspecialchar 函数来编码我的身体,甚至尝试过 str_replace 来替换 [] 括号,认为它们可能是导致它的原因
同样,这肯定是由于内容代码,因为我只尝试了一个 Hello World 纯内容并且它有效 ----------------------------- -------------------------------
更新,之前我刚刚使用 $_POST 从 textarea 获取 html 内容我尝试在同一变量中使用相同的内容,但在内容正文周围使用了 ' ' 单引号,现在发布作品但出现错误
Warning: strpos(): Empty delimiter in wp-includes/class-wp-xmlrpc-server.php on …