我想通过multipart/form-data发送数据时解析数据,如何解析响应数据?
我使用API Gateway + Lambda,
所以我设置了身体映射模板,
Content-Type : multipart/form-data
{
"body" : $input.json('$'),
"headers": {
#foreach($header in $input.params().header.keySet())
"$header": "$util.escapeJavaScript($input.params().header.get($header))" #if($foreach.hasNext),#end
#end
},
"method": "$context.httpMethod",
"params": {
#foreach($param in $input.params().path.keySet())
"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end
#end
},
"query": {
#foreach($queryParam in $input.params().querystring.keySet())
"$queryParam": "$util.escapeJavaScript($input.params().querystring.get($queryParam))" #if($foreach.hasNext),#end
#end
}
}
Run Code Online (Sandbox Code Playgroud)
在lambda中,只需确认数据发送即可
const AWS = require('aws-sdk');
const querystring = require('querystring');
exports.handler = (event, context, callback) => {
callback(null,event.body);
};
Run Code Online (Sandbox Code Playgroud)
所以响应结果是这样的,
"----------------------------249221450291104233730977\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n1\r\n----------------------------249221450291104233730977\r\nContent-Disposition: form-data; name=\"file\"; filename=\"SampleJPGImage_15mbmb.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n\ufffd\ufffd\ufffd\ufffd\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000H\u0000H\u0000\u0000\ufffd\ufffd\u0000\"Exif\u0000\u0000MM\u0000*\u0000\u0000\u0000\b\u0000\u0001\u0001\u0012\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\ufffd\fXICC_PROFILE\u0000\u0001\u0001\u0000\u0000\fHLino\u0002\u0010\u0000\u0000mntrRGB XYZ \u0007\ufffd\u0000\u0002\u0000\t\u0000\u0006\u00001\u0000\u0000acspMSFT\u0000\u0000\u0000\u0000IEC sRGB\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\ufffd\u0000\u0001\u0000\u0000\u0000\u0000\ufffd-HP \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011cprt\u0000\u0000\u0001P\u0000\u0000\u00003desc\u0000\u0000\u0001\ufffd\u0000\u0000\u0000lwtpt\u0000\u0000\u0001\ufffd\u0000\u0000\u0000\u0014bkpt\u0000\u0000\u0002\u0004\u0000\u0000\u0000\u0014rXYZ\u0000\u0000\u0002\u0018\u0000\u0000\u0000\u0014gXYZ\u0000\u0000\u0002,\u0000\u0000\u0000\u0014bXYZ\u0000\u0000\u0002@\u0000\u0000\u0000\u0014dmnd\u0000\u0000\u0002T\u0000\u0000\u0000pdmdd\u0000\u0000\u0002\ufffd\u0000\u0000\u0000\ufffdvued\u0000\u0000\u0003L\u0000\u0000\u0000\ufffdview\u0000\u0000\u0003\ufffd\u0000\u0000\u0000$lumi\u0000\u0000\u0003\ufffd\u0000\u0000\u0000\u0014meas\u0000\u0000\u0004\f\u0000\u0000\u0000$tech\u0000\u0000\u00040\u0000\u0000\u0000\frTRC\u0000\u0000\u0004<\u0000\u0000\b\fgTRC\u0000\u0000\u0004<\u0000\u0000\b\fbTRC\u0000\u0000\u0004<\u0000\u0000\b\ftext\u0000\u0000\u0000\u0000Copyright (c) 1998 Hewlett-Packard Company\u0000\u0000desc\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012sRGB …Run Code Online (Sandbox Code Playgroud) 我在ArFragment中显示了3D对象。因此,我将.obj文件和.mtl文件放在sampledata文件夹中。我右键单击obj文件,然后选择“导入Sceneform资产”以添加.sfa / .sfb文件。
因此,当我标记图像时,我可以显示3d对象,但是对象太大。
这是我的.sfa文件的详细信息
{
bound_relative_root: {
x: 0.5,
y: 0,
z: 0.5,
},
materials: [
{
name: "Material.001",
parameters: [
{
baseColor: null,
},
{
baseColorTint: [
0.80000000000000004,
0.80000000000000004,
0.80000000000000004,
1,
],
},
{
metallic: 1,
},
{
roughness: 0.120695,
},
{
opacity: null,
},
],
source: "build/sceneform_sdk/default_materials/obj_material.sfm",
},
],
model: {
attributes: [
"Position",
"TexCoord",
"Orientation",
],
collision: {},
file: "sampledata/dongbaek.obj",
name: "dongbaek",
recenter: "root",
scale: 0.200000
},
version: "0.52:1",
}
Run Code Online (Sandbox Code Playgroud)
我认为它可以按比例调整大小,但是我更改了值,但没有改变。相同大小
那么如何调整3d对象的大小呢?
添加3d对象文件以制作.sfa / .sfb文件时是否存在任何问题?(导入Sceneform Asset) …
我将它们的名称命名为 String,位于可绘制文件夹中。如何访问可绘制文件夹并传递可绘制资源来更改图标视图。
val iconList = ["ic_apple","ic_banana","ic_melon"]
Run Code Online (Sandbox Code Playgroud)
和ic_apple.png, ic_banana.png,ic_melon.png在我的可绘制文件夹中。
就像,java 代码中有这样的内容。
val iconList = ["ic_apple","ic_banana","ic_melon"]
Run Code Online (Sandbox Code Playgroud) 服务器.ts
import fastify from "fastify";
import cookie from 'fastify-cookie';
import apiRoute from './routes/api';
import jwtPlugin from "./plugins/jwtPlugin";
import closePlugin from "./plugins/closePlugin";
import path from "path";
const PORT = parseInt(process.env.PORT!, 10)
export default class Server {
app = fastify({ logger: true })
constructor() {
this.setup()
}
setup() {
this.app.get('/', (request, reply) => {
reply.send({ hello: 'world' })
})
this.app.register(apiRoute, { prefix: '/api' })
this.app.register(cookie)
this.app.register(require('fastify-url-data'))
this.app.register(jwtPlugin)
this.app.register(closePlugin)
this.app.setErrorHandler((error, request, reply) => {
reply.send({
statusCode: error.statusCode,
name: error.name,
message: error.message,
validation: error.validation, …Run Code Online (Sandbox Code Playgroud) 我让 EditText 从用户那里接收密码。
所以我将输入类型更改为密码。
<EditText
android:id="@+id/edittext_Password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorPrimary"
android:inputType="textPassword"
android:layout_weight="1"
/>
Run Code Online (Sandbox Code Playgroud)
当我在 EditText 中输入 word 时,它显示一个黑点。
我想将点更改为可绘制资源。
我正在尝试在 Android Studio 中使用数据库检查器。
当我在设备上运行应用程序时,检查器始终显示我的应用程序数据库
使用前需要设置什么吗?我没有使用 db.close()
这是我的数据库模块代码
@Database(entities = [User::class], version = 1, exportSchema = false)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
companion object {
//For singleton instantiation
@Volatile private var instance: AppDatabase?= null
fun getInstance(context: Context): AppDatabase {
return instance ?: synchronized(this) {
instance ?: buildDatabase(context).also { instance = it }
}
}
private fun buildDatabase(context: Context): AppDatabase {
return Room.databaseBuilder(context, AppDatabase::class.java, DATABASE_NAME)
.addCallback(
object : RoomDatabase.Callback() {
override fun onCreate(db: SupportSQLiteDatabase) {
super.onCreate(db) …Run Code Online (Sandbox Code Playgroud) 我将在每列的顶部放置一个标签,并Lazy\xd0\xa1olumn在底部放置一个标签。如下。
然而,当我填写完后,却出现了与我预想不同的画面:
\n\n我还需要设置什么吗?这是我的代码
\n@Composable\nfun MenuDetailList(\n loading: Boolean,\n type: String,\n items: List<Any>,\n page: Int,\n onChangeScrollPosition: (Int) -> Unit,\n onTriggerNextPage: () -> Unit,\n onCallCacheDialog: (Int) -> Unit\n) {\n val configuration = LocalConfiguration.current\n val screenHeight = configuration.screenHeightDp.dp\n\n Box(\n modifier = Modifier\n .background(color = MaterialTheme.colors.surface)\n ) {\n if (loading && items.isEmpty()) {\n LoadingShimmer(imageHeight = screenHeight)\n }else if (items.isEmpty()) {\n NothingHere()\n }else {\n ConstraintLayout(\n modifier = Modifier\n .fillMaxSize()\n .background(color = Color.White)\n ) {\n val (label, list) = createRefs()\n …Run Code Online (Sandbox Code Playgroud) 我希望当我按下按钮并将其写入textview. 然而,下面的代码将增加的值显示为 Log 但在屏幕上, in 的值textview没有改变。我不确定出了什么问题。如果您知道,请告诉我。
片段.kt
class SettingFragment : Fragment(), View.OnClickListener {
companion object {
fun newInstance() = SettingFragment()
private val TAG = "SettingFragment"
}
private lateinit var viewModel: SettingViewModel
private lateinit var binding: FragmentSettingBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_setting, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(this).get(SettingViewModel::class.java)
binding.lifecycleOwner = this
binding.button.setOnClickListener(this)
}
override fun onClick(v: View?) { …Run Code Online (Sandbox Code Playgroud) data-binding android kotlin android-databinding android-livedata
在此图片中,在tablayout中,选定的tabbar下划线颜色为紫色和文本.
我搜索未选中的tabbar,但我找不到未选中的tabbar下划线.
我想在选择某个标签时更改颜色,更改未选中的标签栏下划线颜色.
如果你知道这件事,你能帮助我吗?
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = Screen.LoginScreen.route
) {
composable(route = Screen.LoginScreen.route) {
navBackStackEntry ->
val factory = HiltViewModelFactory(LocalContext.current, navBackStackEntry)
val viewModel: LoginViewModel = viewModel(key = "LoginViewModel", factory = factory)
LoginScreen(
viewModel = viewModel,
onNavigateToNextScreen = navController::navigate,
navController = navController
)
}
composable(route = Screen.HomeScreen.route) {
navBackStackEntry ->
val factory = HiltViewModelFactory(LocalContext.current, navBackStackEntry)
val viewModel: HomeViewModel = viewModel(key = "HomeViewModel", factory = factory)
HomeScreen(
)
}
} …Run Code Online (Sandbox Code Playgroud) android ×6
kotlin ×3
android-room ×1
arcore ×1
aws-lambda ×1
data-binding ×1
drawable ×1
fastify ×1
lazycolumn ×1
object ×1
postman ×1
retrofit2 ×1