• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 网络与连接开发常见问题
2
3## 网络请求中extraData支持哪几种的数据格式
4
5适用于:OpenHarmony SDK 3.2.2.5版本, API9 Stage模型
6
7extraData代表发送请求的额外数据,支持如下数据:
8
91. 当HTTP请求为POST、PUT方法时,此字段为HTTP请求的content。
10
112. 当HTTP请求为GET、OPTIONS、DELETE、TRACE、CONNECT方法时,此字段为HTTP请求的参数补充,参数内容会拼接到URL中进行发送。
12
133. 开发者传入string对象,开发者需要自行编码,将编码后的string传入。
14
15## 如何理解http请求的错误码28
16
17适用于:OpenHarmony SDK 3.2.2.5版本,API9 Stage模型
18
19错误码28代表CURLE_OPERATION_TIMEDOUT,操作超时。网络请求底层使用libcurl库,更多错误码可以查看相应文档。
20
21参考文档:[Response常用错误码](../reference/apis/js-apis-http.md#response常用错误码)和[Curl错误码](https://curl.se/libcurl/c/libcurl-errors.html)
22
23## \@ohos.net.http.d.ts的response错误码返回6是什么意思?
24
25适用于:OpenHarmony SDK 3.2.3.5版本
26
276表示地址无法解析主机,可以尝试ping一下request中的url,确认是否可以ping通。
28
29更多错误码参考[Response常用错误码](../reference/apis/js-apis-http.md#response常用错误码)或者[Curl错误码](https://curl.se/libcurl/c/libcurl-errors.html)
30
31## 调用camera拍摄的照片怎么上传到服务器
32
33适用于:所有版本
34
35具体开发参考文档:[上传下载](https://gitee.com/openharmony/app_samples/tree/master/Network/UploadDownload)
36
37## OpenHarmony的http接口如何设置cookie
38
39适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型
40
41HttpRequestOptions中的header是一个Object类型,可以直接在header里设置cookie,具体开发参考文档:[数据请求](../reference/apis/js-apis-http.md#request)。
42
43## http请求的官方示例代码里的extra data部分怎么写
44
45适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型
46
471. 鼠标移到extraData, ctrl+鼠标左键,跳转到sdk中,里面有关于extraData的传参说明。可以发现文档中对extraData的定义是这样的 extraData?: string | Object,也就是extraData支持string 和 Object两种类型。
48
492. 这两种写法都可以实现:
50  a.extraData:"data to send";
51  b. extraData:{ data:"data to send", },
52
53## 设备连接wifi后,如何获取当前设备的IP地址
54
55适用于:OpenHarmony SDK 3.2.7.5版本,API9 Stage模型
56
57使用wifi模块获取ipInfo,然后转换为IP常用格式,注意wifi.getIpInfo()接口需要权限 ohos.permission.GET_WIFI_INFO58
59示例:
60
61
62```
63import wifi from '@ohos.wifi'
64@Entry
65@Component
66struct Page {
67  @State ip: string = '点击获取ip'
68
69  resolveIP(ip) {
70    if (ip < 0 || ip > 0xFFFFFFFF) {
71      throw ("The number is not normal!");
72    }
73    return (ip >>> 24) + "." + (ip >> 16 & 0xFF) + "." + (ip >> 8 & 0xFF) + "." + (ip & 0xFF);
74  }
75
76  build() {
77    Row() {
78      Column() {
79        Text(this.ip)
80          .fontSize(50)
81          .fontWeight(FontWeight.Bold)
82          .onClick(()=>{
83            this.ip = this.resolveIP(wifi.getIpInfo().ipAddress)
84          })
85      }
86      .width('100%')
87    }
88    .height('100%')
89  }
90}
91```
92
93## 如何判断当前是否有网络
94
95适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型
96
97通过如下hasDefaultNet接口判断是否有网络,注意需要申请 ohos.permission.GET_NETWORK_INFO 权限
98
99
100```
101connection.hasDefaultNet().then((has)=> {
102  console.log("hasDefaultNet " + JSON.stringify(has))
103})
104```
105