我正在使用HttpCli组件形式ICS来发送请求.我使用了组件附带的示例.它说:
procedure TForm4.Button2Click(Sender: TObject);
var
Data : String;
begin
Data:='status=no';
HttpCli1.SendStream := TMemoryStream.Create;
HttpCli1.SendStream.Write(Data[1], Length(Data));
HttpCli1.SendStream.Seek(0, 0);
HttpCli1.RcvdStream := TMemoryStream.Create;
HttpCli1.URL := Trim('http://server/something');
HttpCli1.PostAsync;
end;
Run Code Online (Sandbox Code Playgroud)
但事实上,它并没有发送
状态=无
但
statu
我无法理解,问题出在哪里.也许有人可以展示一个例子,如何在HttpCli组件的帮助下发送POST请求?
PS我不能用Indy =)
我有一个登录Web服务的应用程序,也上传文件.当我进入不同的屏幕并从webservice获取数据时,我需要保持会话处于活动状态.我读过我需要将http调用作为服务,并且可能使用该服务启动我的应用程序.如何将我的"登录"活动和"上传"活动httpclient调用放在http服务活动中?
谢谢.
我不知道android中的HttpClient是否有内置的缓存系统,那么我可以避免构建自己的.
我有一个场景,我使用Httpclient获取页面的HTML repsonse,这与我们右键单击并获取的ViewSouce相同.有某些标签有
<img alt="abc" /> and other tags
<img alt="def" src="/images/xyz.jpg" />
Run Code Online (Sandbox Code Playgroud)
这些是我通过View Source看到的标签.
但是,当我使用firebug inspect元素时,我会看到每个图像的有效URL.例如上面
<img alt="abc" />
Run Code Online (Sandbox Code Playgroud)
好像
<img alt="abc" src="/images/fgh.jpg" />
Run Code Online (Sandbox Code Playgroud)
怎么了?我假设视图源在重新加载图像之前获取代码,因此缺少URL.我知道我错了......但我不知道这个的原因.有人能帮我吗.我想通过firebug inspect元素看到所有图像的网址.谢谢.
我的httpclient项目遇到了一个奇怪的问题.在java1.6的其他两个Centos系统中运行成功.但它在另一台机器上失败了(centos和java1.6).问题是:
java.lang.IllegalStateException: Failure initializing default SSL context
[java] at org.apache.http.conn.ssl.SSLSocketFactory.createDefaultSSLContext(SSLSocketFactory.java:211)
[java] at org.apache.http.conn.ssl.SSLSocketFactory.(SSLSocketFactory.java:333)
[java] at org.apache.http.conn.ssl.SSLSocketFactory.getSocketFactory(SSLSocketFactory.java:165)
[java] at org.apache.http.impl.conn.SchemeRegistryFactory.createDefault(SchemeRegistryFactory.java:45)
[java] at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:294)
[java] at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:445)
[java] at simulativeLogin.WebClientDevWrapper.wrapClient(Unknown Source)
[java] at simulativeLogin.GetAccessToken.getToken(Unknown Source)
[java] at crawler.FriendshipCrawler.main(Unknown Source)
[java] at java.lang.reflect.Method.invoke(libgcj.so.10)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.taskdefs.Java.run(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.taskdefs.Java.execute(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
[java] at java.lang.reflect.Method.invoke(libgcj.so.10)
[java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.Target.execute(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.Target.performTasks(ant-1.7.1.jar.so)
[java] at org.apache.tools.ant.Project.executeSortedTargets(ant-1.7.1.jar.so)
[java] … Android 中consumeContent()的类或org.apache.http.HttpEntity的目的是什么?
什么时候应该使用它可以有副作用吗?
我正在尝试修复应用程序中的错误,该应用程序使用HttpClient向服务器发出请求,有时如果某个特定请求失败,它将随后失败,尽管互联网是正常的.应用程序在输入流读取结束时调用此方法.
我正在尝试使用Ruby脚本连接到SOAP URL。
我正在关注此 Railscasts集。我安装了savon gem(savon(2.4.0))。
然后在我的ruby文件中,我有以下代码:
require 'savon'
client = Savon.client(wsdl:"https://api.comscore.com/KeyMeasures.asmx?WSDL")
response = client.call(:authenticate , message: { username:"xxxxx", password:"xxxxx"})
puts "#{response.inspect}"
Run Code Online (Sandbox Code Playgroud)
我知道网址没有问题,因为我使用了SOAPUI并将WSDL URL放置在那里,并且我得到了响应。
当我运行上面的ruby文件时,出现以下异常:
/Users/XXXX/.rvm/gems/ruby-2.0.0-p247/gems/wasabi-3.2.3/lib/wasabi/resolver.rb:44:in `load_from_remote': Error: 401 (Wasabi::Resolver::HTTPError)
from /Users/XXXXX/.rvm/gems/ruby-2.0.0-p247/gems/wasabi-3.2.3/lib/wasabi/resolver.rb:32:in `resolve'
Run Code Online (Sandbox Code Playgroud)
谷歌搜索之后,我看到了这篇文章,这似乎表明我应该安装并要求使用gem“ httpclient”,然后再试一次。没有变化,仍然出现相同的错误。
有人可以帮忙我吗.....
谢谢
我想知道.Net HttpClient async方法是在新线程中运行还是在主线程中运行.
例如,在我的控制台应用程序中,我调用一种async方法来使用HttpClient.GetStringAsync方法下载URL内容.
这个方法(GetStringAsync)会在新的单独线程中运行吗?
我在C#中使用HttpClient时疯狂...
我简化了我的项目,因此可以更轻松地复制我的问题.我想做的就是在后台调用HttpClient.PostAsync而不阻塞我的UI窗口(我正在使用WPF btw).
这是我的代码(将代码删到了min.):Bing仅用于此处不显示我的私人网络服务,它当然可以替换为其他所有网站.
private async void Window_Loaded(object sender, RoutedEventArgs e)
{
try {
MyTextBlock.Text = "Waiting...";
Uri webUri = new Uri("https://www.bing.com/");
using (HttpClient client = new HttpClient()) {
using (HttpResponseMessage response = await client.PostAsync(webUri, new MultipartFormDataContent())) {
MyTextBlock.Text = await response.Content.ReadAsStringAsync();
}
}
} catch (Exception exc) {
MessageBox.Show(exc.ToString(), "Unhandled Exception");
}
}
Run Code Online (Sandbox Code Playgroud)
当我的UI正在等待异步发布请求时,它在TextBox中显示"Waiting".当异步请求返回时,它会显示结果.什么都不应该发生.
所以这里出现了问题,有时候PostAsync方法根本就不会返回......甚至会忽略Timeout.当我调试它总是有效,但当我尝试启动应用程序时,它有时会挂起.并不总是哪个不能让错误更容易找到.我尝试了多种方法来调用请求异步,但每次都是同样的问题.
我也阅读了以下博客,其中包含异步方法中的阻塞问题,但即使使用ConfigureAwait也没有区别. http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
我可以想象在HttpClient async方法中存在一个问题,锁定主线程,因此它会导致这个问题.Wenn我在ConsoleApplication中使用相同的代码一切都很好.我的客户端和目的地之间有一个代理,但这应该不是问题.
有人可以复制这个问题吗?我在.NET Framework 4.6.1中使用C#/ WPF.
我在localhost:8086 / addMessage处有一个REST API,当我使用POSTMAN测试它时可以使用。但是,当我想在客户端上集成此api时,它将返回:
java.net.URISyntaxException: Expected scheme-specific part at index 10: localhost:
at java.net.URI$Parser.fail(URI.java:2848) ~[na:1.8.0_171] error:
Run Code Online (Sandbox Code Playgroud)
这是我调用api的方法:
public void addOrder(Message orders) throws Exception
{ RestTemplate restTemplate = new RestTemplate();
String resp = restTemplate.postForObject(
"localhost:8086/addMessage",
orders,
String.class);
}
Run Code Online (Sandbox Code Playgroud)
我该怎么解决。