我已经成功创建了一个驻留在我服务器上的PHP REST API.我现在想通过我的WPF C#应用程序创建与此的客户端连接.我找到了这个,但我的API要求通过HTTP标头发送API密钥,我看不到你可以在这里做到这一点.我还使用CURL创建了一个PHP REST客户端,它非常简单,并且希望在C#中内置一些东西来处理对REST服务的请求.
如果有人能够指出我所看到的教程,或某个地方的图书馆,我将不胜感激.
谢谢.
我在类中创建了一个异步WebClient请求,如下所示:
public class Downstream
{
public bool StartDownstream()
{
WebClient client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 [...]");
client.Headers.Add("Content-Type","application/x-www-form-urlencoded");
try
{
byte[] postArray = Encoding.UTF8.GetBytes("somevar=foo&someothervar=bar");
Uri uri = new Uri("http://www.examplesite.com/somepage.php");
client.UploadDataCompleted +=
new UploadDataCompletedEventHandler(client_UploadDataCompleted);
client.UploadDataAsync(uri, postArray);
}
catch (WebException e)
{
MessageBox.Show("A regular Web Exception");
}
catch (NotSupportedException ne)
{
MessageBox.Show("A super Web Exception");
}
return true;
}
void client_UploadDataCompleted(object sender, UploadDataCompletedEventArgs e)
{
MessageBox.Show("The WebClient request completed");
}
}
Run Code Online (Sandbox Code Playgroud)
然后我创建一个新的类实例并在此处运行该方法:
Downstream Downstream1 = new Downstream();
Downstream1.StartDownstream();
Run Code Online (Sandbox Code Playgroud)
当我这样做时,表单运行的线程似乎挂起,直到WebClient获得响应.为什么是这样?我已经使用过该UploadDataAsync方法,所以它不应该是异步的吗?
我刚开始使用套接字与我的Flex应用程序进行通信,因为我需要客户端和服务器之间的快速通信.我看了一下PHP套接字,但由于PHP没有以这种方式在服务器上运行(你可以,但我觉得它是不受欢迎的)我不确定PHP是否是最好的通信方法使用Flex使用套接字.
我的应用程序需要使用与服务器的快速通信,因为它将诸如私人聊天等功能合并到其他用户,以及从服务器远程控制Flex客户端.
我应该在我的情况下使用PHP套接字,还是应该找到替代语言甚至替代套接字?我担心的是我将开始使用PHP套接字,但它无法在负载下应对.使用PHP时,速度也可能是一个问题.
感谢您的回答,非常感谢.正如我可以收集的那样,PHP 在使用套接字时是稳定的,但该语言只是在请求/响应环境中使用,正如Benson所说.
感谢Cornel,我使用Flex和套接字的情况的一个很好的选择被指出是BlazeDS,使用Java而不是PHP.
我试图找到一个用户关闭页面后执行一些PHP代码的方法.在我的应用程序中,一旦用户关闭或导航离开页面,服务器将在数据库中将用户声明为"离线".这需要代码知道用户何时离开页面.我的应用程序也有无尽的负载(即它会一直睡到用户关闭页面).
编辑:
谢谢你的回答.我决定使用Pekka的会话方法,因为这似乎是我的应用程序最合乎逻辑的.
干杯
我正在创建一个系统维护页面,显示何时执行系统维护.页面上有一个进度条,显示已完成的维护量.我试图通过计算系统维护窗口的剩余百分比/时间来自动化进度条,但遇到了麻烦.
数据库中存储了三个不同的时间,即开始时间,结束时间,然后是当前时间.我需要能够计算出维护工作的剩余时间并将其显示在进度条中,从1%到100%.该脚本应该能够计算开始时间和结束时间之间经过的时间.
我最初尝试计算两次之间的百分比(当前时间和结束时间),但这不起作用,因为方程式中需要有三个因素 - 开始时间,结束时间和当前时间.
任何有关这方面的帮助将不胜感激.
我正在尝试创建一个类,所以当我在文件中执行以下操作时:
Functions LoginFunctions = new Functions();
LoginFunctions.loadFunctions();
Run Code Online (Sandbox Code Playgroud)
它将创建我需要的对象,并将其公开,以便调用该类的每个表单都能够使用它.类文件如下.
namespace App
{
public class Functions
{
public void loadFunctions()
{
TaskbarItemInfo taskbarItemInfo = new TaskbarItemInfo();
}
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎没有将taskbarItemInfo对象公开,并且它不允许我在类中的其他地方使用它.如何将其公开,以便调用该类的每个文件都可以使用该对象?
我在Flex应用程序中导航到不同的MXML页面时遇到了困难.我检查了一些关于它的其他问题,但它们似乎与标签导航有关.我试图通过Actionscript代码从一个MXML页面导航到另一个MXML页面.这怎么可能?
干杯
编辑:
我是Flex的真正初学者,我发现我实际上需要使用States,现在已经发现了如何使用它们.谢谢你的帮助.
我在类中创建了一个窗口实例,但我无法直接从其他类访问该窗口的实例.
有没有办法引用我已经使用C#方法创建的窗口实例,可能会搜索打开的应用程序窗口,直到找到我正在尝试访问的仪表板窗口?
c# ×4
php ×3
apache-flex ×2
wpf ×2
actionscript ×1
api ×1
asynchronous ×1
class ×1
mxml ×1
navigation ×1
object ×1
public ×1
rest ×1
sockets ×1
time ×1
webclient ×1