我正在从头开始构建一个PHP应用程序(使用Kohana3框架).我将构建它,以便我可以使用API在内部访问数据.与此同时,我想最终向公众提供.
我计划使用RESTful访问方法.但是,我很难找到有关如何正确保护API的明确信息.换句话说,我如何实现API签名和访问?
我正在尝试使用cURL创建HTTP PUT请求,但我无法使其正常工作.我已经阅读了很多教程,但它们都没有实际工作.这是我目前的代码:
$filedata = array('metadata' => $rdfxml);
$ch = curl_init($url);
$header = "Content-Type: multipart/form-data; boundary='123456f'";
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filedata));
$returned = curl_exec($ch);
if (curl_error($ch))
{
print curl_error($ch);
}
else
{
print 'ret: ' .$returned;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用PHP PEAR,但结果相同.问题是存储库说没有设置元数据.我真的需要帮助!谢谢!
我有一个在PHP中使用这种语法的想法.它说明了创建对象有不同的回退方式
function __construct() {
if(some_case())
$this = method1();
else
$this = method2();
}
Run Code Online (Sandbox Code Playgroud)
这是一场噩梦吗?还是有效?
USE Pooja
GO
----Create TestTable
CREATE TABLE TestTable(RtJobCode VARCHAR(20), RtProfCode smallint,RtTestCode smallint,ProfCode smallint,TestCode smallint)
----INSERT INTO TestTable using SELECT
INSERT INTO TestTable (RtJobCode, RtProfCode,RtTestCode,ProfCode,TestCode)
SELECT RtJobCode,RtTestCode,TestCode,RtProfCode,ProfCode
FROM dbo.ResultTest,dbo.Test,dbo.Profiles
WHERE RtTestCode=ANY(Select TestCode from dbo.Test)
----Verify that Data in TestTable
SELECT *
FROM TestTable
GO
Run Code Online (Sandbox Code Playgroud)
上面的代码试图从名为resutltest和profiles和test的表中取出条目,
问题是在创建一个多维数据集期间我遇到了一些在所有表中都不一致的数据,所以我尝试了对表的连接,但由于表包含大量的列,所以它是不可行的,所以尝试制作这段代码只是不停地执行而不停止显示任何数据
Resulttest的Rttestcode是testcode的外键
嘿,我有这种形式
<form method="POST" action=''>
<input type="hidden" name="op" value="download1">
<input type="hidden" name="usr_login" value="<TMPL_VAR usr_login>">
<input type="hidden" name="id" value="<TMPL_VAR file_code>">
<input type="hidden" name="fname" value="<TMPL_VAR file_name>">
<input type="hidden" name="referer" value="<TMPL_VAR referer>">
<div class="premium-download"><input name="method_premium" value="<TMPL_VAR lang_premium_download>" type="image" src="images/premium-download.png" alt="<TMPL_VAR lang_premium_download>" border="0" /></div>
<div class="free-download"><input name="method_free" value="<TMPL_VAR lang_free_download>" type="image" src="images/free-download.png" alt="<TMPL_VAR lang_free_download>" /></div>
</form>
Run Code Online (Sandbox Code Playgroud)
如何从图像输入提交表格(参见最后两个字段)?现在他们被设置为图像类型,我知道那些默认情况下不会提交表单.有人可以帮忙吗?有人告诉我用javascript做这件事:D
在这里使用Spring Framework ......
我创建了一个过滤器来更改css文件的响应体,如果我直接调用url它就会运行.但是,如果匹配urlrewrite规则,则跳过过滤器.
示例: 在web.xml中:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<!-- skipping init params here for brevity -->
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>cssFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>cssFilter</filter-name>
<url-pattern>*css</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
在urlrewrite.xml中有一个这样的映射设置:
<rule>
<from>/styles-special/(.*)$</from>
<to last="true">/styles/$1</to>
</rule>
Run Code Online (Sandbox Code Playgroud)
(出于多种原因,我们需要这个)
因此,路径以"/ styles-special /"开头的任何*.css文件将被重写为"/ styles /",并且不会调用cssFilter,而是任何路径以"/"开头的*.css文件styles /"将按预期运行cssFilter.
我已经尝试将cssFilter的url-pattern更改为许多不同的选项,但结果相同.在我看来,像tuckey urlrewrite过滤器只是在重写后没有调用chain.doFilter(),但也许它比那更复杂?
知道问题可能在这里吗?这是预期的功能吗?任何解决方法?...也许拦截器或控制器是去这里的方式?
提前感谢您对此提出的任何建议!!
注意:使用以下内容(如axtavt所建议):
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
Run Code Online (Sandbox Code Playgroud)
修复了链接和运行过滤器的问题.但是,我收到以下错误:
java.lang.IllegalStateException: NO CONTENT
at org.mortbay.jetty.HttpGenerator.addContent(HttpGenerator.java:106)
at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:644)
at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:579)
Run Code Online (Sandbox Code Playgroud)
这是Filter的代码片段:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse …Run Code Online (Sandbox Code Playgroud) java spring url-rewriting servlet-filters tuckey-urlrewrite-filter
我正在使用maven和maven-failsafe-plugin在集成测试生命周期阶段启动jetty.然后,我对运行的webapp执行了许多(*IT.java)junit测试.这是按预期工作的.
但是,我想连接到测试数据库进行集成测试.我正在存储它的URL
${basedir}/src/test/resources/jdbc.properties
Run Code Online (Sandbox Code Playgroud)
当jetty插件运行(jetty:run)时,它会使用
${basedir}/src/main/resources/jdbc.propertes
Run Code Online (Sandbox Code Playgroud)
代替.我尝试通过classesDirectory属性重新配置jetty插件来使用
${project.build.testOutputDirectory}
Run Code Online (Sandbox Code Playgroud)
但是test-classes目录缺少我实际编译的项目类,以及存储的资源
${basedir}/src/main/resources
Run Code Online (Sandbox Code Playgroud)
注意:surefire将测试资源添加到类路径中,然后是主资源,这样两者中的任何内容都将使用测试版本,因为它首先在类路径中找到.
有关如何正确设置此设置的任何想法?
谢谢!
编辑:
好吧,似乎jetty-plugin上有配置属性来处理这个问题:
不幸的是,它们不起作用.
这是我的pom.xml的相关部分:
Run Code Online (Sandbox Code Playgroud)<testResources> <testResource> <filtering>true</filtering> <directory>src/test/resources</directory> </testResource> </testResources> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version> <configuration> <contextPath>/</contextPath> <stopPort>8005</stopPort> <stopKey>STOP</stopKey> </configuration> <executions> <execution> <id>start-jetty</id> <phase>pre-integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <daemon>true</daemon> <useTestClasspath>true</useTestClasspath> <testClassesDirectory>${project.build.testOutputDirectory}</testClassesDirectory> </configuration> </execution> <execution> <id>stop-jetty</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> <configuration> <useFile>false</useFile> </configuration> </plugin>
Amazon.com刚刚宣布可以在S3存储桶中托管静态网站.我访问了他们的设置页面http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?WebsiteHosting.html并为我的静态网站创建了一个存储桶,它工作正常.我有一个http:// [我的桶名] .s3-website-us-east-1.amazonaws.com/的形式的URL .
但是,我想将我拥有的子域(例如static.mydomain.com)指向我在Amazon S3的静态网站.有没有人想出怎么做?
我感谢你能给我的任何帮助.

我的asp.net网站上有两个文件夹,即VENDORS和ADMIN
我希望当任何用户访问ADMIN文件夹中的任何页面时,它会重定向到Admin/login.aspx,直到他们登录....
我希望当任何用户访问VENDORS文件夹中的任何页面时,它会重定向到Vendors/login.aspx,直到他们登录....
如何使用web.config授权....
我正在使用glade 3,创建TreeView并成功添加了行作为算法完成,但我有一个小问题,因为treeview将添加新行,因此我的"GUI"将变得更长到下面,我怎么能添加滚动条为这个TreeView?为了让我的"GUI"不再存在?
注意:我已添加"新调整"并将其连接到TreeView和ScrollBar垂直,但仍然无法完成工作.
任何的想法?
php ×3
java ×2
amazon-s3 ×1
api ×1
asp.net ×1
construct ×1
curl ×1
dns ×1
forms ×1
glade ×1
gtk ×1
gtktreeview ×1
hosting ×1
html ×1
http-put ×1
javascript ×1
kohana-3 ×1
maven ×1
onclick ×1
put ×1
rest ×1
scrollbar ×1
security ×1
signature ×1
spring ×1
sql-server ×1
subdomain ×1
surefire ×1
web-config ×1