我正在分享使用HttpURLConnection发送带参数的图像,音频或视频文件的解决方案.参数可以是(纯字符串或JSON).
(Android客户端到PHP后端)
场景:必须上传媒体文件(带参数的音频,视频和图像).
媒体文件将存储在服务器文件夹中,参数将存储到db.
我遇到了一个问题,即在参数丢失时图像上传成功.
找到了潜在的解
如此推荐选择HttpURLConnection而不是Httpclient
您可能想知道,哪个客户最好?
Apache HTTP客户端在Eclair和Froyo上的错误更少.它是这些版本的最佳选择.
对于姜饼和更好的,HttpURLConnection是最好的选择.其简单的API和小巧的尺寸使其非常适合Android.透明压缩和响应缓存可减少网络使用,提高速度并节省电池电量.新的应用程序应该使用HttpURLConnection; 这是我们将继续投入精力的地方.
Android代码:
public int uploadFile(final String sourceFileUri) {
String fileName = sourceFileUri;
HttpURLConnection conn = null;
DataOutputStream dos = null;
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
File sourceFile = new …Run Code Online (Sandbox Code Playgroud) 嗯,这可能听起来很奇怪.当Facebook应用程序配置为本机/桌面应用程序(应用程序 - >您的APP->高级 - >应用程序类型)时,"应用程序访问令牌"从此过程获取
https://graph.facebook.com/oauth/access_token?"+"client_id ="+ APP_ID +"&client_secret ="+ APP_SEC +"&grant_type = client_credentials"
无法使用,从Facebook页面获取Feed或发布.根据facebook文档提取提要仅需要任何有效的access_token或用户access_token,如果应用程序配置为Native/Desktop,则奇怪的是它不会以这种方式工作.
1经过一天研究后发现的解决方案得出令人沮丧的结论,它必须在(应用程序 - >您的APP->高级 - >应用程序类型)中配置为"基于Web"的应用程序.
设置完成后,上面提取Feed的过程就可以了.这样就提出了一个问题,这是一个错误吗?或者我误解了文档.
我希望我为你节省了一天,如果你这几天一直在为facebook页面提供服务并且因为明显的原因而沮丧地脱掉你的头发.
假设我有一个Vector v 包含100个类的对象,Scenario它由10种不同类型的对象组成.为了永久删除ScenarioVector v的索引5处的所有对象,以下哪一种方法是正确的.
1. v.removeElementAt(5);
Run Code Online (Sandbox Code Playgroud)
要么:
2. Scenario s=(Scenario) v.elementAt(5);
v.removeElementAt(5);
s=null;
Run Code Online (Sandbox Code Playgroud)
要么:
3. Scenario s=(Scenario) v.elementAt(5);
s.makeAllObjectsNull();//explicitly assign null to 10 objects inside Scenario e.g. object1=null object2=null and so on
v.removeElementAt(5);
s=null;
Run Code Online (Sandbox Code Playgroud) 我有这种习惯,从不同的项目中查找其他源代码作为参考.但是,这会导致忘记关闭标签的累积问题.我可能有大约100个源标签打开(这与当前和不相关的项目有关).
是否有偏好或插件在某个空闲时段后自动关闭未使用的标签?就像10分钟不活动后说的那样.
我面临的问题是,当我匆忙时,标签堆积起来并消耗大量内存,更不用说你是否已经打开Chrome阅读文档和StackOverflow挖掘.最后由于交换使用而减慢了我的系统速度.
[更新] 从此链接中找到一些有趣的提示
那么如何在Eclipse中快速关闭不必要的标签?
我试图将本机库包含到jar文件中.虽然我发现它应该如何完成,但仍有一些缺失.这是清单文件.
Manifest-Version: 1.0
Class-Path: .
Main-Class: ListMediaDevices
Name: library
URL: http://jspeex.sourceforge.net/
Library-Version: 0.9.7
Library-Name: JSpeex
Name: build
Build-Date: 10/05/2010 18:59
Built-With: Linux 2.6.32-21-generic amd64
Built-By: damencho
Bundle-NativeCode:
lib/jnawtrenderer.dll;
lib/jndirectshow.dll;
lib/jnffmpeg.dll;
lib/jng722.dll;
lib/jnopus.dll;
lib/jnportaudio.dll;
lib/jnscreencapture.dll;
lib/jnspeex.dll;
lib/jnwincoreaudio.dll;
osname=Win32;processor=x86
Run Code Online (Sandbox Code Playgroud)
根据规范,我确实使用UTF8编码并用新行结束文件.一些如何加载jar文件
java -jar pr.jar give "Error: An unexpected error occurred while trying to open file"
Run Code Online (Sandbox Code Playgroud)
为了复制问题,我删除了整个bundle头以及lib参数并添加了一个任意标题"xyz:"它似乎给出了同样的错误,所以我得出结论,有些我的实现无法识别"Bundle- NativeCode:"标题.
其他信息
java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
正在使用的库是libjitsi.jar