我有一个RESTful API,我试图通过Android和RestTemplate连接.所有对API的请求都通过HTTP身份验证进行身份验证,方法是设置HttpEntity的标头,然后使用RestTemplate的exchange()方法.
所有GET请求都以这种方式工作,但我无法弄清楚如何完成经过身份验证的POST请求.postForObject并postForEntity处理POST,但没有简单的方法来设置身份验证标头.
因此对于GET来说,这很有用:
HttpAuthentication httpAuthentication = new HttpBasicAuthentication("username", "password");
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAuthorization(httpAuthentication);
HttpEntity<?> httpEntity = new HttpEntity<Object>(requestHeaders);
MyModel[] models = restTemplate.exchange("/api/url", HttpMethod.GET, httpEntity, MyModel[].class);
Run Code Online (Sandbox Code Playgroud)
但POST显然无法使用,exchange()因为它从不发送自定义标头,我也看不到如何设置请求体使用exchange().
从RestTemplate进行经过身份验证的POST请求的最简单方法是什么?
如果产品ID不可用且只有产品的网址,那么如何在Magento中加载产品模型?例如,我想从它友好的URL中检索产品模型,例如
electronics/cameras/olympus-stylus-750-7-1mp-digital-camera.html
Run Code Online (Sandbox Code Playgroud)
我在另一篇文章中找到了以下代码:
$oRewrite = Mage::getModel('core/url_rewrite')->loadByRequestPath(
$path
);
Run Code Online (Sandbox Code Playgroud)
但它似乎没有正常工作.Magento的文档在这方面非常缺乏; 有谁知道如何做到这一点?
在Magento的布局xml中设置块模板时遇到问题.我正在尝试设置子块的模板,而不是整个页面布局(几乎所有文档都解释了如何设置布局的模板).
背景:我正在使用模块布局xml中的标签更新自定义操作中的布局句柄<update />.
本质上,我想重用内置产品视图操作的布局和块,但为几个块提供自定义模板.(不仅仅是覆盖,这些都需要是全新的模板,只能在我的自定义操作中触发,并且可以覆盖).
我的布局html:
<?xml version="1.0"?>
<layout version="0.1.0">
<mymodule_product_index>
<update handle="catalog_product_view" />
<reference name="content">
<block type="catalog/product_view"
name="product.info" output="toHtml" template="mymodule/product.phtml" />
</reference>
<reference name="product.info.bundle">
<action method="setTemplate"><template>mymodule/customtemplate.phtml</template></action>
</reference>
</mymodule_product_index>
</layout>
Run Code Online (Sandbox Code Playgroud)
在setTemplate上product.info.bundle永远不会奏效; 它根本不会影响布局.我已经尝试从父块中包装<reference>其他<reference>节点而不起作用.是否可以用这种方式替换块模板?我觉得我的问题源于我正在使用的事实<update />.
顺便说一句,我知道我的布局xml正在加载并且没有错误,文件的其余部分工作正常,缓存被禁用,无论如何都清除了缓存等.
从javascript中确定Magento商店的基本网址的最佳方法是什么?
我正在开发一个可重用的扩展,需要在javascript中知道商店的基本URL,以便进行一些Ajax调用.人们会认为这样的财产
Mage.baseUrl
Run Code Online (Sandbox Code Playgroud)
会有,但我找不到.
另一种方法是将基本URL添加为一些内联javascript,但我无法找到有关如何以编程方式添加内联javascript(仅外部js文件)的任何信息,而无需更改模板.