我有以下代码用于使用Apache的HTTP-Client(org.apache.http.client)上传文件:
public static void main(String[] args) throws Exception
{
String fileName = "test.avi";
File file = new File(fileName);
String serverResponse = null;
HttpParams params = new BasicHttpParams();
params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, true);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpClient client = new DefaultHttpClient(params);
HttpPut put = new HttpPut("http://localhost:8080/" + fileName);
FileEntity fileEntity = new FileEntity(file, "binary/octet-stream");
put.setEntity(fileEntity);
HttpResponse response = client.execute(put);
HttpEntity entity = response.getEntity();
if (entity != null)
{
serverResponse = EntityUtils.toString(entity);
System.out.println(serverResponse);
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但现在我想要一个进度条,显示文件上传的进度.怎么做到这一点?我在File Upload with Java(带进度条)中找到了一个代码片段,但是它是为Apache HTTP Client 3(org.apache.commons.httpclient)设计的,并且Apache HTTP Client …
有人可以建议任何Windows客户端GitHub?我找到了Tower客户端Mac(http://www.git-tower.com/),似乎它通过API与GitHub很好地集成.您是否知道具有类似功能的Windows客户端?
更新是的感谢所有的答案,我知道这三个,但他们只与GIT集成,而不是GitHub.我的意思是GitHub的一些社交功能,例如对传入请求的审阅,对这些传入请求的评论,内部GitHub消息传递支持,在客户端上创建新存储库的可能性,管理GitHub存储库设置以及类似功能,订阅其他存储库并获取通知当他们改变.据我所知,GitHub API中提供了大部分功能,但我找不到任何使用此API的Windows客户端.
我正在使用C#.NET 3.5构建RESTful API客户端.
我第一次开始用好的HttpWebClient(和HttpWebResponse)来构建它,我可以做任何我想做的事.我很高兴.我唯一坚持的是JSON响应的自动反序列化.
所以,我听说过一个名为RestSharp(104.1)的精彩库,它可以简化RESTful API客户端的开发,并自动反序列化JSON和XML响应.我打开它在我的所有代码,但现在我知道我不能做的事情,我可以做HttpWebClient和HttpWebResponse,就像访问和编辑原始请求主体.
有人有解决方案吗?
编辑:我知道如何设置请求体(带request.AddBody()),我的问题是我想获取此请求体字符串,编辑它,并在请求中重新设置它(动态更新请求体)
这是我做的,我已经安装了svnserve作为服务,我用net start svn service命令启动它.我键入svn ls svn:// localhost来测试服务,但它返回了错误,如本文标题所述.
我在我的计算机上输入了svn --version和svnserve --version来查找版本号,客户端和服务器版本是相同的,版本1.5.6.我猜测由于服务器和客户端的不同版本而出现错误.
当我在cmd中使用svnserve --daemon --root命令启动服务器时,仍会出现错误.
为什么会出现错误?谢谢
据我所知,大多数语言都支持服务器端重定向(asp.net: Response.Redirect, PHP: header( 'newpage' ) ; ).您也可以使用JavaScript进行重定向(window.location.href="newLocationURL").
你何时会选择一个而不是另一个?
关于ASP.net/IIS7(集成模式下的app池,启用32位apps = false),我注意到即使页面有302标题,整个页面主体也会被发送到客户端.
而且我相信这不是用PHP的情况下,只有头部被发送?在客户端引用Redirect意味着以下步骤:客户端 - >服务器端 - >客户端 - >服务器端 - >客户端.
服务器端重定向意味着:客户端 - >服务器端 - >客户端(仅限标头)* - >服务器端 - >客户端.
W3C标准或服务器端重定向实现是否因Web服务器技术而异?
编辑:我只关心Response.Redirect(在asp.net中)而不是server.transfer,至少对于这个讨论
我们目前正在评估AngularJS在企业应用程序(电子银行)中作为单页应用程序的使用.许多开发人员@工作已经确信没有其他方法可去.这是趋势,它是未来证明(html,css和js)它很容易做,减少服务器负担等.尽管这个框架的有趣部分,我不相信有必须考虑的因素在走这条路之前.这些可以是:
有没有任何关于企业应用程序构建的经验?我宁愿选择Asp.Net MVC4.请不要假设答案,我不想发动战争.真实的生活经历真的很感激.
问候
我正在尝试使用Jersey Client来模拟对我的Web服务的HTTP请求.我试图从文档中实现这个简单的例子.这是我的简短代码:
public void restoreTest(String sessionId) throws Exception {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(idsUrl).path("restore");
Form form = new Form();
form.param("sessionId", sessionId);
target.request(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
}
Run Code Online (Sandbox Code Playgroud)
我甚至没有实现整个示例,因为目前我在最后一行得到一个异常:
java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V
at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:254)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:232)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60)
at org.icatproject.idsclient.TestingClient.restoreTest(TestingClient.java:112)
at org.icatproject.ids.ids2.ArchiveTest.restoreThenArchiveDataset(ArchiveTest.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) …Run Code Online (Sandbox Code Playgroud) 现在最简单的(安装和使用)Windows的git客户端是什么?
我正在开发一个ASP.NET Web应用程序,它使用HttpWebRequest向另一台服务器发送请求.它通过HTTPS发送请求,远程服务器需要客户端证书.请求在.NET应用程序中失败,显然无法发送正确的客户端证书.我是能够成功连接并发送客户端证书,如果我只需访问URL以网页浏览器(Chrome明确).
下面的代码是一个简单的再现,只有一个基本的GET请求.
var r = WebRequest.Create(url) as HttpWebRequest;
r.ClientCertificates = new X509CertificateCollection { myX509Cert };
using (var resp = r.GetResponse() as HttpWebResponse) {
...
}
Run Code Online (Sandbox Code Playgroud)
我得到了我们最喜欢的例外,"无法创建SSL/TLS安全通道".通常,这些类型的问题指向证书私钥的权限问题.我尝试了所有我能想到的东西,以确保这一切都正确配置,但也许我错过了一些东西.简而言之,远程服务器正在发送一个TLS CertificateRequest,其列表似乎正确地标识了我的客户端证书,但我的应用程序无法响应任何客户端证书.
这是我的设置:
这是我尝试过的一切,以及我所知道的:
HasPrivateKey= truePreAuthenticate = true在请求对象中设置.没有什么区别ServicePointManager.Expect100Continue = false,没有什么区别ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3,但显然远程服务器需要TLS,所以没有帮助ServicePointManager.ServerCertificateValidationCallback委托总是返回true.但是,在TLS握手中,它甚至在调用此委托之前就失败了我添加了System.Net跟踪,看到了这个: …
我试了好几天使用Web视图并在应用程序中嵌入了客户端证书,但在我看来,android sdk没有提供任何方法来执行此操作,是否有回调来拦截服务器发送的质询?有没有办法将webview与客户端证书一起使用并发出https请求?