我为一个程序创建了一个函数,它在请求类型是的时候工作GET
,如果是POST
,它总是产生一个超时异常(并且没有达到50秒的超时)在线上HttpWebResponse response = (HttpWebResponse)request.GetResponse();
我尝试了很多东西,但我没有找到原因,也许有人在这里知道.
编辑:如果有人感兴趣,可以使用它:https
://gist.github.com/4347248
任何帮助将不胜感激.
我的代码是:
public ResRequest request(string URL, RequestType typ, CookieCollection cookies, string postdata ="", int timeout= 50000)
{
byte[] data;
Stream req;
Stream resp;
HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest;
request.Timeout = timeout;
request.ContinueTimeout = timeout;
request.ReadWriteTimeout = timeout;
request.Proxy = new WebProxy("127.0.0.1", 8118);
request.Headers.Add(HttpRequestHeader.AcceptLanguage, "de");
request.Headers.Add("UA-CPU", "x86");
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center …
Run Code Online (Sandbox Code Playgroud) 我基本上将以下 xml 用于 Android启动屏幕:空活动windowBackground
:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>
Run Code Online (Sandbox Code Playgroud)
background_splash.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/defaultBackground" />
</item>
<item>
<bitmap
android:src="@drawable/logo"
android:tileMode="disabled"
android:gravity="center"/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
只要logo.png
小于屏幕尺寸,就可以正常工作。如果logo.png
比屏幕大,它就会超出屏幕。
我看到了 3 种解决方法,但都有缺点:
left
/ right
,<item
但这需要 API 23+@drawable/logo
异xhdpi
,xxhdpi
但我使用的是密度分割,当为其他设备重用 apk 时(apk 网站、“移动到新设备”-传输 apk 的应用程序等),这会破坏它ImageView
,但这有明显的延迟如何正确/没有缺点地做到这一点?
android splash-screen android-layout pixel-density screen-density
我正在编写一个使用SSL(over SSLStream
)的服务器/客户端应用程序,它必须做很多事情(不仅仅是文件接收/发送).目前,它的工作原理是:只有一个连接.我总是从客户端/服务器发送数据SSLStream.WriteLine()
并使用它来接收它SSLStream.ReadLine()
,因为我可以通过一个连接发送所有信息,我可以从所有线程发送而不会破坏数据.
现在我想实现文件发送和接收.与我的客户端/服务器应用程序中的其他内容一样,每条消息都有一个前缀(如cl_files或sth)和base64编码的内容部分(前缀和内容由|分隔).我实现了这样的文件共享:上传者向接收者发送关于总文件大小的消息,然后上传者通过前缀发送文件的base64编码部分r
.
我的问题是文件共享真的很慢.我从localhost到localhost大约20KB/s.我还有另一个问题.如果我增加文件的base64编码部分的大小(这使文件共享更快),前缀r
不再出现在接收器上(因此数据无法识别).
我怎样才能让它更快?
任何帮助将不胜感激.
我的(可能很糟糕的)代码是针对客户的:
//its running inside a Thread
FileInfo x = new FileInfo(ThreadInfos.Path);
long size = x.Length; //gets total size
long cursize = 0;
FileStream fs = new FileStream(ThreadInfos.Path, FileMode.Open);
Int16 readblocks = default(Int16);
while (cursize < size) {
byte[] buffer = new byte[4096];
readblocks = fs.Read(buffer, 0, 4096);
ServerConnector.send("r", getBase64FromBytes(buffer));//It sends the encoded Data with the prefix r over SSLStream.WriteLine
cursize = cursize + Convert.ToInt64(readblocks);
ThreadInfos.wait.setvalue((csize …
Run Code Online (Sandbox Code Playgroud)
我有一个奇怪的问题:我在c#中编写了一个基于.net2的服务器和客户端,它们通过.net 2 SslStream聊天.Cl和S之间有1个用于发送命令的连接,还有一个用于在cl和s之间发送文件的连接.
在我的Windows机器上本地一切正常.但是,如果我在我的Linux服务器上运行服务器(使用单声道),共享文件在某些情况下不起作用.我有不同的文件类别,在其中有两个工作,第三个,服务器挂起,SSLStream.AuthenticateAsServer(....);
客户端抛出一个异常,消息"调用SSPI失败,请参阅内部异常".Innerexception是一个System.ComponentModel.Win32Exception,消息"收到的消息是意外的或格式错误的".
我认为我在linux上运行它的方式可能是错误的.实际上我使用VS2012进行本地开发,当我想把它放在服务器上时,我上传VS编译的exe和Im mono server.exe
用来启动它.但我也尝试在Windows上使用monodevelop来编译它(monodevelop中编译的东西也在本地工作)并在linux服务器上使用它,但结果却相同.
任何帮助将不胜感激.
继承了我缩短的代码:
客户:
//gets auth guid before, then it does
Thread Thre = new Thread(sendfile);
Thre.Start(authguid);
private void sendfile(string guid){
TcpClient cl = new TcpClient();
cl.Connect(hostname, 8789);
SslStream Stream = new SslStream(cl.GetStream(), true, new RemoteCertificateValidationCallback(ServerConnector.ValidateServerCertificate));
Stream.AuthenticateAsClient(hostname);//throws the exception
//sends auth guid and file
}
Run Code Online (Sandbox Code Playgroud)
服务器:
public class FServer
{
protected static bool halt = false;
protected List<FConnection> connections;
private TcpListener tcpServer;
private IPEndPoint ipEnde = new IPEndPoint(IPAddress.Any, 8789);
private delegate …
Run Code Online (Sandbox Code Playgroud)