我有一个Controller方法需要接受multipart/form-data客户端作为POST请求发送.表单数据有2个部分.一个是序列化的对象application/json,另一个是发送的照片文件application/octet-stream.我的控制器上有一个方法,如下所示:
[AcceptVerbs(HttpVerbs.Post)]
void ActionResult Photos(PostItem post)
{
}
Run Code Online (Sandbox Code Playgroud)
我可以在这里Request.File没有问题地获取文件.但是PostItem为null.不知道为什么?有任何想法吗
控制器代码:
/// <summary>
/// FeedsController
/// </summary>
public class FeedsController : FeedsBaseController
{
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Photos(FeedItem feedItem)
{
//Here the feedItem is always null. However Request.Files[0] gives me the file I need
var processor = new ActivityFeedsProcessor();
processor.ProcessFeed(feedItem, Request.Files[0]);
SetResponseCode(System.Net.HttpStatusCode.OK);
return new EmptyResult();
}
Run Code Online (Sandbox Code Playgroud)
}
电线上的客户端请求如下所示:
{User Agent stuff}
Content-Type: multipart/form-data; boundary=8cdb3c15d07d36a
--8cdb3c15d07d36a
Content-Disposition: form-data; name="feedItem"
Content-Type: text/xml
{"UserId":1234567,"GroupId":123456,"PostType":"photos",
"PublishTo":"store","CreatedTime":"2011-03-19 03:22:39Z"}
--8cdb3c15d07d36a …Run Code Online (Sandbox Code Playgroud) 我有以下代码行:$terms = get_the_terms( $the_post->ID, 'posts_tags' ); echo $terms;想法是以标签的格式回显数组,但它只返回单词Array?
我该怎么做呢?标签应如下所示:'tag1,tag2,tag3'
我不确定我是否在这里问正确的问题,但基本上我正在插入带有ajax请求的html:
// data-active_chart
if ($("#charts").attr("data-active_chart") == "barchart") {
$.ajax({
url: $("#charts").attr("data-path") + "/barchart",
success: function(data) {
$('#charts').html(data);
console.log('Load was performed.');
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的HTML是这样的:
<div id="charts" data-active_chart="barchart" data-path="http://example.com/something">
</div>
Run Code Online (Sandbox Code Playgroud)
但关键是我需要jQuery来了解更新的DOM,比如我需要我的工具提示等工作在插入的HTML中,以及插入HTML中的一堆其他东西都需要响应JS,我该如何以最佳实践方式做到这一点?
在匹配涉及美元符号的子模式时,我遇到了一些问题.例如,考虑以下文本块:
Regular Price: $20.50 Final Price: $15.20
Regular Price: $18.99 Final Price: $2.25
Regular Price: $11.22 Final Price: $33.44
Regular Price: $55.66 Final Price: $77.88
Run Code Online (Sandbox Code Playgroud)
我试图将常规/最终价格集与以下正则表达式匹配,但它根本不起作用(根本没有匹配):
preg_match_all("/Regular Price: \$(\d+\.\d{2}).*Final Price: \$(\d+\.\d{2})/U", $data, $matches);
我逃过了美元符号,所以给出了什么?
当我尝试在Verizon的4G/LTE上使用我的应用程序时,我收到了一些崩溃用户的报告.
查看堆栈跟踪,看起来Android的HttpClient.execute()实现正在抛出一个OOM.这仅发生在4G/LTE设备上,特别是HTC Thunderbolt,并且仅在4G/LTE上.WiFi,3G,UMTS都可以.也适用于Sprint的WiMax 4G工作正常.
两个问题:
什么是引起Android开发者注意的最佳方式?除了在http://code.google.com/p/android/issues上报告之外,还有哪些更好的选择?
关于如何解决这个问题的任何想法?我自己没有4G设备,我无法在模拟器中实现这一点,所以我需要在这里做一些有根据的猜测.我可以尝试在我的代码中捕获OOM并尝试清理并强制GC,但我不确定这是不是一个好主意.评论或其他建议?
这是我的代码正在做的事情:
HttpParams params = this.getHttpParams(); // returns params
ClientConnectionManager cm = new ThreadSafeClientConnManager(params, this.getHttpSchemeRegistry() );
DefaultHttpClient httpClient = new DefaultHttpClient( cm, params );
HttpResponse response = null;
request = new HttpGet( url );
try {
response = httpClient.execute(request); // <-- OOM on 4G/LTE. OK otherwise
int statusCode = response.getStatusLine().getStatusCode();
Log.i("fetcher", "execute returned, http status " + statusCode );
...
Run Code Online (Sandbox Code Playgroud)
这是崩溃的堆栈跟踪:
E/dalvikvm-heap(11639):2055696字节分配的内存不足.I/dalvikvm(11639):"Thread-16"prio = 5 tid = 9 RUNNABLE I/dalvikvm(11639):| group ="main"sCount = …
我想根据手机运行的当前Android版本选择标准的Android菜单图标.
示例图标:

记得!我不想为此目的绘制drawable,我确实想要基于设备API的正确图标.
这可能吗?
我正在尝试将.NET Web应用程序部署到IIS(7.5),而不会给用户带来任何麻烦.我确保禁用重叠回收是错误的,但我每次都遇到同样的问题.
每次我为站点上传新的二进制文件时,IIS都会在启动新进程之前终止该进程.所以每次上传新的二进制文件时,用户都会收到以下错误消息:
'/'应用程序中的服务器错误.无法加载文件或程序集"MyApplicationWeb"或其依赖项之一.该进程无法访问该文件,因为该文件正由另一个进程使用.(HRESULT异常:0x80070020)
我不知道如何无缝地做到这一点.现在我只是上传二进制文件; 但是当上传发生时(或本地副本),它将给出上述引用的行为.我也尝试使用Web园,但结果相同.
我不想要的:
更新:在上面的文章中他们说:
但是,由于关闭或启动的关闭超时值是可配置的,因此如果工作进程在时间限制内未完成为现有请求提供服务,则它仍可在服务请求时终止.
我不知道在哪里可以找到这个值,也不知道它是什么默认值.如果它少于几秒钟就可以解释我的结果.
PS.我发布它是在SO而不是SF /网站管理员等,因为我认为这种知识可能在那些不积极参与开发的人中很少,我希望这是可以的.
我试图运行这个非常基本的套接字示例:
import socket
host = 'ipv6hostnamegoeshere'
port=9091
ourSocket = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, 0)
ourSocket.connect((host, port))
Run Code Online (Sandbox Code Playgroud)
然而,我得到错误:
ourSocket.connect((host, port))
File "<string>", line 1, in connect
socket.error: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)
布尔值has_ipv6返回true.有帮助吗?
在我的一个程序中,我需要计算一系列数字的平均值.问题是,有时答案会出现一个巨大的小数,我需要尝试将其降低到最大两位小数.
我见过一些叫做的东西Excel.WorksheetFunction.Round(...)但据我所知它只适用于特定的数字或特定的细胞.我想知道是否有人知道如何实现这一点,以便它将在一系列单元格中舍入所有小数.
Excel.WorksheetFunction.Round(ActiveSheet.Range(g_first_Function_Col & "2:" & g_first_Function & g_totalRow).Select, 2)
Run Code Online (Sandbox Code Playgroud)
上面的代码试图在一系列单元格上使用round函数.g_first_Function_Col是一些列(如列"H"),g_totalRow是其中包含任何值的最后一行.当我尝试运行这段代码时,它告诉我"="预期.基本上我正在尝试选择整个列并将其四舍五入.
谢谢,
杰西斯莫瑟蒙
在VS2010中,如果使用错误的调用约定调用函数,则托管调试助手将为您提供pInvokeStackImbalance异常(pInvokeStackImbalance MDA),这通常是因为在调用C库时未指定CallingConvention = Cdecl.比如你写的
[DllImport("some_c_lib.dll")]
static extern void my_c_function(int arg1, int arg2);
Run Code Online (Sandbox Code Playgroud)
代替
[DllImport("some_c_lib.dll", CallingConvention=CallingConvention.Cdecl)]
static extern void my_c_function(int arg1, int arg2);
Run Code Online (Sandbox Code Playgroud)
因此获得了StdCall调用约定而不是Cdelc.
如果你回答这个问题,你已经知道了这个差异,但是对于这个线程的其他访问者:StdCall意味着被调用者清除堆栈中的参数,而Cdecl意味着调用者清理堆栈.
因此,如果您的C代码中的调用约定错误,则您的堆栈不会被清理并且程序崩溃.
但是,即使.NET程序使用StdCall进行Cdecl功能,.NET程序似乎也不会崩溃.默认情况下,VS2008上没有启用堆栈不平衡检查,因此一些VS2008项目使用了他们的作者不知道的错误调用约定.我刚尝试过GnuMpDotNet,即使缺少Cdelc声明,样本运行也很好.X-MPIR也是如此.
它们都在调试模式下抛出pInvokeStackImbalance MDA异常,但在发布模式下不会崩溃.为什么是这样?.NET VM是否将所有对本机代码的调用包装起来并在之后恢复堆栈本身?如果是这样,为什么还要使用CallingConvention属性呢?
android ×2
php ×2
.net ×1
4g ×1
asp.net ×1
asp.net-mvc ×1
deployment ×1
dllimport ×1
excel ×1
htc-android ×1
httpclient ×1
iis ×1
ipv6 ×1
javascript ×1
jquery ×1
networking ×1
pinvoke ×1
python ×1
regex ×1
rounding ×1
sockets ×1
vba ×1
wordpress ×1